Tomcat Realm формы: вход в систему всегда не удается

1

Аутентификация Tomcat Realm (Forms) в моем проекте JSP работала задолго до того, как я сменил ОС на Linux, теперь это не так: логин всегда терпит неудачу.

IDE - IDEA.

Проект использует:

  • 8.0.9 Tomcat JDBCRealm
  • PostgreSql 9.3
  • Драйвер Postgres JDBC находится в /WEB-INF/lib dir и отображается 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
    Пожалуйста, предоставьте свое сообщение об ошибке и настройку ins pg_hba.conf .
  • 0
    @ErwinBrandstetter ErwinBrandstetter, я добавил pg_hba.conf в Q, как вы просите. Об ошибке - здесь нет ошибки. Он просто перенаправляет меня на страницу «сбой входа в систему», как я ввожу wrond pass
Показать ещё 9 комментариев
Теги:
tomcat
jdbcrealm

2 ответа

2
Лучший ответ

Realm в Tomcat управляется вне вашего webapp, поэтому драйвер JDBC должен быть доступен для среды выполнения Tomcat.

Это означает, что вы должны поместить драйвер jdbc в $TOMCAT_HOME/lib, а не в WEB-INF/lib/внутри вашего webapp.

1

Похоже, вы никогда не добираетесь до базы данных. Является ли Postgres даже прослушиванием? Убедитесь, что вы установили listen_addresses в postgresql.conf.

Подробнее:

  • 0
    Спасибо за уделенное время! Проблема решена путем перемещения Postgres драйвер с /WEB-INF/lib к Tomcat в lib каталога.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню