2010-04-05 6 views
0

Dans mon application J2EE 5, j'ai une sécurité basée sur JDBC Realm avec la méthode Form. La méthode cryptée est MD5 par défaut. La base de données est PostgreSQL 8.4 installée localement (ou 8.3 disponible via LAN).Royaume JDBC: GlassFish v2.1 = OK; GlassFish v3 = Échec avec invalidité Cause

Mon application fonctionnait finement sur le serveur GlassFish v2.1 avec PostgreSQL 8.3, mais maintenant je dois le déployer sur GlassFish v3. Je suis absolument sûr d'avoir fait tout de même la config sur GFv3 comme la création de Pool de connexions (qui pings sans problème), JDBC Resource et JDBC Realm.

Mais sur GFv3 je reçois une exception de connexion avec "invaliduserreason" alors que le schéma de la base de données vient d'être créé à partir du script de base de données de travail. J'ai vérifié les données et entré un nom d'utilisateur/mot de passe des milliers de fois et il semble que les données sont correctes. Où puis-je trouver la raison de la non-fonctionnement de la sécurité?

S'il vous plaît, conseil.

NetBeans 6.8 Merci.

Répondre

0

essayer d'ajouter le nom de base de données à la propriété URL dans votre pool de connexion .. SQLException caché indique ici que le nom de la base de données n'est pas spécifié .. travaillé pour moi

1

J'ai eu le même problème ici. J'ai résolu de définir le journal de sécurité au mieux. J'ai vu que jaas interrogeait la base de données en minuscules même si j'ai utilisé une notation chameau pour nommer mes champs dans la table postgresql.

La seule solution que j'ai trouvée était de nommer aussi toute ma table et mes champs en minuscules dans le serveur Postgresql.

1

Vous pouvez augmenter la journalisation pour le système de sécurité. Allez dans Paramètres du journal -> Consigner les avertissements et définissez le nom du consignateur 'javax.enterprise.system.core.security' pour effectuer le suivi. Essayez à nouveau et vérifiez les journaux.

1

Essayez la base de données de changer les noms de tables à MAJUSCULES. J'ai eu exactement le même problème que vous avez et en changeant les noms de tables en majuscules résolu le problème pour moi.

1

La définition de l'algorithme de résumé à "none" a fonctionné pour moi. J'utilise Glassfish 3.1 avec Derby. Dans la configuration de domaine, j'ai le nom des tables en minuscules et l'ID utilisateur et le groupid sont des colonnes dans la même table, donc ces choses ne causent pas de problèmes sur Derby.