Время последнего входа в систему с Glassfish и OpenDS - кэшированы учетные данные LDAP? - PullRequest
0 голосов
/ 05 января 2011

Я настроил 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 Ответ

0 голосов
/ 05 января 2011

Вы можете захотеть проверить в журнале доступа OpenDS, есть ли запрос Bind для каждого входа пользователя в систему. Если нет, это означает, что в GlassFish имеется некоторое кэширование. Другая вещь, на которую стоит обратить внимание, - это атрибут ds-cfg-last-login-time-format в Политике паролей. По умолчанию фиксируется время последнего входа в систему с Днем разрешения. Таким образом, время последнего входа в систему изменяется только в том случае, если вход в систему происходит на следующий день (как правило, без проверки).

Людо

...