Аутентификация Tomcat Realm (Forms) в моем проекте JSP работала задолго до того, как я сменил ОС на Linux, теперь это не так: логин всегда терпит неудачу.
IDE - IDEA.
Проект использует:
org.postgresql.Driver
Изменения в 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 "%r" %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&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
Realm в Tomcat управляется вне вашего webapp, поэтому драйвер JDBC должен быть доступен для среды выполнения Tomcat.
Это означает, что вы должны поместить драйвер jdbc в $TOMCAT_HOME/lib
, а не в WEB-INF/lib/внутри вашего webapp.
Похоже, вы никогда не добираетесь до базы данных. Является ли Postgres даже прослушиванием? Убедитесь, что вы установили listen_addresses
в postgresql.conf
.
Подробнее:
Postgres
драйвер с /WEB-INF/lib
к Tomcat в lib
каталога.
pg_hba.conf
.pg_hba.conf
в Q, как вы просите. Об ошибке - здесь нет ошибки. Он просто перенаправляет меня на страницу «сбой входа в систему», как я ввожу wrond pass