2009-10-01 18 views
1

** Je voulais configurer l'authentification via Tomcat6.0 Configuration de domaine JDBC **** J'ai vérifié ce qui suit:.Tomcat 6.0 authentification du gestionnaire via JDBC domaine

-Tous mes "utilisateurs" et "rôles" sont stockés dans la base de données MySQL.

-MySQL lecteurs JDBC sont dans le répertoire tomcat \ lib

-Tomcat-utilisateur-xml est modifié pour un tel royaume comme ci-dessous

< -realm className = "org.apache.catalina. realm.JDBCRealm » driverName = "org.gjt.mm.mysql.Driver" connectionName = "XXX" connectionPassword = "YYY" connectionURL = "jdbc: mysql: // localhost/mydb" digest = "MD5" uSERTABLE = "users" userNameCol = "nom d'utilisateur" userCredCol = "pa ssword » userRoleTable = "user_roles" roleNameCol = "roleName"/>

Après avoir fait cela à chaque fois que je tente d'exécuter Tomcat et essayez d'exécuter 'Manager', il lance alors une erreur d'authentification sur le navigateur et Catalina.log contiennent le journal des erreurs suivant à chaque fois.

SCHWERWIEGEND: ouverture d'Exception connexion base de données java.sql.SQLException: Accès refusé pour l'utilisateur 'XXX'; password = XXXX '@' localhost » (en utilisant le mot de passe: NON) à com.mysql .jdbc.SQLError.createSQLException (SQLError.java:1055) à com.mysql.jdbc.SQLError.createSQLException (SQLError.java:956) à com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3558) at com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3490) à com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:919) à com.mysql.jdbc.MysqlIO.secureAuth411 (MysqlIO.java:3996) à com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO.java:1284) à com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2142) à com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:781) à com.mysql .jdbc.JDBC4Connection. (JDBC4Connection.java:46) à sun.reflect.NativeConstructorAccessorImpl.newInstance0 (natif Method) à sun.reflect.NativeConstructorAccessorImpl.newInstance (InconnuSource) à sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Information inconnue Source) à java.lang.reflect.Constructor.newInstance (Information inconnue Source) à com.mysql.jdbc.Util.handleNewInstance (Util.java:406) à com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:352) à com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:284) à org.apache.catalina.realm. JDBCRealm.open (JDBCRealm.java:703) at org.apache.catalina.realm.JDBCRealm.start (JDBCRealm.java:775) at org.apache.catalin une.core.ContainerBase.start (ContainerBase.java:1037) à org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) à org.apache.catalina.core.StandardService.start (StandardService. java: 516) à org.apache.catalina.core.StandardServer.start (StandardServer.java:710) à org.apache.catalina.startup.Catalina.start (Catalina.java:583) au soleil .reflect.NativeMethodAccessorImpl.invoke0 (native Method ) à sun.reflect.NativeMethodAccessorImpl.invoke (Information inconnue Source) à sun.reflect.DelegatingMethodAccessorImpl.invoke (Information inconnue Source) à java.lang.reflect.Method.invoke (Information inconnue Source) à org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) à org.apache.catalina.startup. Bootstrap.main (Bootstrap.java:413)

S'il vous plaît quelqu'un a une idée de ce qui ne va pas et à quel point.

Merci

Répondre

0

de l'exception, il semble que le nom d'utilisateur et/ou mot de passe de l'utilisateur de base de données sont incorrectes. Assurez-vous qu'ils sont orthographiés correctement et qu'un utilisateur de base de données avec les droits d'accès appropriés est réellement créé.

+0

Oui, cela pourrait être. Je revérifie plusieurs fois, donc ce n'est pas un cas je pense .. merci quand même – dharma

1

utilisation comme:

<Realm className="org.apache.catalina.realm.JDBCRealm" 
connectionURL="jdbc:mysql://localhost/mydb?user=XXX&amp;password=YYY" 
driverName="com.mysql.jdbc.Driver" 
    ... 
rest same as before/> 
0

J'ai eu le même problème quand mon server.xml était la suivante:

<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" 
      driverName="com.mysql.jdbc.Driver" 
      connectionURL="jdbc:mysql://localhost:3306/authorization" 
      connectionName="root" 
      connectionPassword="xxxxx" 
      userTable="user_table" 
      userNameCol="user"  
      userCredCol="password" 
      userRoleTable="role_table" 
      roleNameCol="role" /> 

mais finalement je l'ai trouvé a eu tort de tomcat7, il devrait être:

<Realm className="org.apache.catalina.realm.JDBCRealm" 
      driverName="com.mysql.jdbc.Driver" 
      connectionURL="jdbc:mysql://localhost:3306/authorization?user=root&amp;password=xxxxxx" 
      userTable="user_table" 
      userNameCol="user"  
      userCredCol="password" 
      userRoleTable="role_table" 
      roleNameCol="role" />