2009-10-01 55 views
1

**我想通過JDBC領域配置配置Tomcat6.0認證**** 我檢查以下內容:的Tomcat通過JDBC境界6.0經理認證

-All我的「用戶」和「角色」存儲在MySQL數據庫中。

-MySQL JDBC驅動器是在Tomcat的\ lib目錄

-Tomcat用戶的XML被修改爲這樣的境界如下

< -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 =「用戶名」 userCredCol =「pa提供ssword」 userRoleTable =‘user_roles’roleNameCol =‘角色名’/>

每當我試圖運行Tomcat並嘗試運行‘經理’,那麼它拋出驗證錯誤的瀏覽器 和Catalina.log這樣做了以後每次都包含以下錯誤日誌。

SCHWERWIEGEND:異常開口 數據庫連接 java.sql.SQLException中:訪問被拒絕 用戶 'XXX';密碼= XXXX '@' 本地主機」 (使用密碼:否)在 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在 com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3996)(MysqlIO.java:919) 在 com.mysql.jdbc.MysqlIO.doHandshake在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)(MysqlIO.java:1284) 在 com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:781) 在 com.mysql .jdbc.JDBC4Connection(JDBC4Connection.java:46) 處 sun.reflect.NativeConstructorAccessorImpl.newInstance sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地 法)(未知 源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 源)處 com.mysql.jdbc.Util.handleNewInstance java.lang.reflect.Constructor.newInstance(未知 源)(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.DelegatingMethodAccessorImpl.invoke sun.reflect.NativeMethodAccessorImpl.invoke(未知 源)(未知源210)處 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) java.lang.reflect.Method.invoke(未知 源)在 org.apache.catalina.startup。 Bootstrap.main(Bootstrap.java:413)

請有人知道什麼是錯的,在哪一點。

感謝

回答

0

從異常似乎數據庫用戶的用戶名和/或密碼不正確。確保它們拼寫正確,並且具有正確訪問權限的數據庫用戶實際上已創建。

+0

是的,那可能是。我仔細檢查了幾次,所以這不是我想的情況..謝謝反正 – dharma 2009-10-01 08:05:50

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