Время последнего входа в систему с Glassfish и OpenDS - кэшированы учетные данные LDAP?
Я настроил Glassfish 3.0 на использование каталога OpenDS 2.2 для аутентификации пользователей с использованием области ldap. Аутентификация пользователя работает нормально (я использую веб-приложение с настроенной формой входа в систему), однако я заметил следующее поведение и не могу понять, что его вызывает:
- мой сервер OpenDS настроен для отслеживания времени последнего входа пользователя в систему с использованием атрибута ds-pwp-last-login-time (как настроено в политике паролей пользователей); при первом входе пользователя в систему после запуска Glassfish атрибут ds-pwp-last-login-time установлен правильно, однако атрибут не обновляется после каждого последующего успешного входа
- после перезапуска Glassfish или отключения / включения используемого веб-приложения атрибут ds-pwp-last-login-time снова устанавливается правильно при первом входе пользователя в систему, но затем никогда не устанавливается снова
Я считаю, что возможные причины этого:
- при первом входе в систему после перезапуска сервера / приложения сервер выполняет шаг, который приводит к обновлению атрибута ds-pwp-last-login-time, однако это не относится к последующим входам в систему
- Glassfish хранит локальный кеш пользователей, которые уже прошли проверку подлинности на сервере с использованием области ldap
Я проверил журнал сервера, установив для регистратора безопасности значение FINEST, и обнаружил, что при первом входе в систему для каждого отдельного пользователя выдаются следующие строки
....
[Web-Security] Policy Context ID was: MyApp/MyApp|#]
[Web-Security] Generating a protection domain for Permission check.|#]
[Web-Security] Checking with Principal : testuser|#]
[Web-Security] Checking with Principal : TestRole|#]
[Web-Security] Checking with Principal : dc=groups|#]
[Web-Security] Checking with Principal : dc=test|#]
[Web-Security] Checking with Principal : dc=com|#]
[Web-Security] Codesource with Web URL: file:/MyApp/MyApp|#]
...
Кто-нибудь знает, как настроить Glassfish/OpenDS так, чтобы атрибут ds-pwp-last-login-time был правильно установлен после каждого успешного входа в систему? Кто-нибудь знает, что делает раздел Создание домена защиты для проверки разрешений, показанный в журнале сервера?
1 ответ
Возможно, вы захотите проверить в журнале доступа OpenDS, есть ли запрос Bind для каждого входа пользователя в систему. Если нет, это означает, что в GlassFish имеется некоторое кэширование. Другая вещь, на которую стоит обратить внимание, это атрибут ds-cfg-last-login-time-format в Политике паролей. По умолчанию фиксируется время последнего входа в систему с Днем разрешения. Таким образом, время последнего входа в систему изменяется только в том случае, если вход в систему происходит на следующий день (как правило, без проверки).
лудо