Я настроил 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 правильно устанавливался после каждого успешного входа в систему? Кто-нибудь знает, что делает раздел Создание домена защиты для проверки разрешений , показанный в журнале сервера?