2014-07-25 12 views
1

我的JSP項目中的Tomcat Realm(Forms)認證在我將操作系統改爲linux之前運行良好,現在它不會:登錄總是失敗。Tomcat領域表格:登錄總是失敗

IDE是IDEA。

該項目採用:

  • 8.0.9 Tomcat的JDBCRealm
  • 的PostgreSQL 9.3
  • Postgres的JDBC驅動程序是在/ WEB-INF/lib目錄和可見的Hibernate作爲org.postgresql.Driver
  • 的Postgres登陸&通過是正確的,表名也是正確的

更改我ñserver.xml中:

<Host name="localhost" appBase="webapps" 
      unpackWARs="true" autoDeploy="true"> 

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
       prefix="localhost_access_log" suffix=".txt" 
       pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 

<Realm className="org.apache.catalina.realm.LockOutRealm"> 
     <Realm 
      className="org.apache.catalina.realm.UserDatabaseRealm" 
      resourceName="UserDatabase"/> 

     <Realm 
      className="org.apache.catalina.realm.JDBCRealm" 
      driverName="org.postgresql.Driver" 
      connectionURL="jdbc:postgresql://localhost:5432/postgres?user=postgres&amp;password=123" 
      userTable="users" 
      userNameCol="name" 
      userCredCol="pass" 
      userRoleTable="user_roles" 
      roleNameCol="role"/> 
</Realm> 

...其實,我有什麼都沒有改變,除了移動LockOutRealm<Host>標籤並添加JDBCRealm塊成。

web.xml是正確的,因爲它好工作之前...

爲什麼它不工作?也許這是關於Linux用戶的 特權?

的pg_hba.conf:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          md5 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#local replication  postgres        md5 
#host replication  postgres  127.0.0.1/32   md5 
#host replication  postgres  ::1/128     md5 

Postgres的日誌:

2014-07-25 19:52:17 MSK LOG: database system was shut down at 2014-07-25 19:52:07 MSK 
2014-07-25 19:52:17 MSK LOG: database system is ready to accept connections 
2014-07-25 19:52:17 MSK LOG: autovacuum launcher started 
2014-07-25 19:53:57 MSK LOG: incomplete startup packet 
2014-07-25 19:53:59 MSK LOG: incomplete startup packet 
2014-07-25 22:39:38 MSK LOG: unexpected EOF on client connection with an open transaction 
2014-07-25 22:42:15 MSK LOG: unexpected EOF on client connection with an open transaction 
+1

請提供您的錯誤信息和設置「pg_hba.conf」。 –

+0

@ErwinBrandstetter,我在你問的時候給Q添加了'pg_hba.conf'。關於錯誤 - 這裏沒有錯誤。它只是將我重定向到「登錄失敗」頁面,就像我進入wrond pass – WildDev

+1

你在數據庫日誌中看到什麼錯誤消息? –

回答

2

在Tomcat中域是你的web應用外進行管理,所以JDBC驅動程序需要可到Tomcat運行。

這意味着您必須將jdbc驅動程序放置在$TOMCAT_HOME/lib目錄中,而不是放在webapp中的WEB-INF/lib /目錄中。