2009-10-01 13 views
1

** Я хотел настроить проверку подлинности с помощью Tomcat6.0 царств Конфигурации JDBC **** Я проверил следующее:.Tomcat аутентификация 6,0 менеджера по JDBC области

-Вс моих «пользователей» и «роль» сохраняется в базе данных MySQL.

-MySQL JDBC диски находятся в TOMCAT \ Lib каталога

-Tomcat-пользователем XML изменяется для такой области, как показано ниже

< -Realm ИмяКласса = "org.apache.catalina. realm.JDBCRealm»DriverName = "org.gjt.mm.mysql.Driver" ConnectionName = "XXX" connectionPassword = "YYY" ConnectionURL = "JDBC: MySQL: // локальный/MYDB" переваривать = "MD5" userTable = "users" userNameCol = "username" userCredCol = "pa ssword» userRoleTable =„user_roles“roleNameCol =„RoleName“/>

После этого каждый раз, когда я пытаюсь запустить Tomcat и попробуйте запустить„Диспетчер“, то он выдает ошибку аутентификации в браузере и Catalina.log содержат следующий журнал ошибок каждый раз.

SCHWERWIEGEND: открытие Исключение соединения с базой данных java.sql.SQLException: Доступ запрещен для пользователя 'XXX'; пароль = XXXX '@' локальный» (используя пароль: NO) в com.mysql .jdbc.SQLError.createSQLException (SQLError.java:1055) на com.mysql.jdbc.SQLError.createSQLException (SQLError.java:956) на com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3558) по адресу 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 (Native Method) в sun.reflect.NativeConstructorAccessorImpl.newInstance (Неизвестно Источник) на sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Неизвестный источник) в java.lang.reflect.Constructor.newInstance (Неизвестный источник) в 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) по адресу org.apache.catalina.realm.JDBCRealm.start (JDBCRealm.java:775) по адресу org.apache.catalin а.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) на солнце .reflect.NativeMethodAccessorImpl.invoke0 (Родной метод) в sun.reflect.NativeMethodAccessorImpl.invoke (Неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (Неизвестно Источник) на java.lang.reflect.Method.invoke (Неизвестный источник) в org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) на org.apache.catalina.startup. Bootstrap.main (Bootstrap.java:413)

Пожалуйста, у кого-нибудь есть идея, что происходит не так и в какой момент.

Благодаря

ответ

0

Из за исключением, кажется, что имя пользователя и/или пароль пользователя базы данных неверны. Убедитесь, что они написаны правильно и что пользователь базы данных с надлежащими правами доступа фактически создан.

+0

Да, это может быть. Я дважды проверяю его несколько раз, так что это не случай, я думаю .. спасибо anyways – dharma

1

используют его как:

<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

У меня была такая же проблема, когда мой server.xml был следующим:

<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" /> 

, но в конце концов я нашел, что это было неправильно в tomcat7, он должен быть:

<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" />