Я хотел бы знать, как объединить эти два шага аутентификации:
- проверить пользователя / пароль в LDAP
- добавить принципы (роли), найденные в БД, втема.
Репозиторий пользователей LDAP не имеет представления о ролях, специфичных для приложения, и я не хочу управлять паролями в БД приложения.Поэтому мне нужны оба.
Файл конфигурации JAAS позволяет иметь дополнительные модули LoginModules:
<name used by application to refer to this entry> {
<LoginModule> <flag> <LoginModule options>;
<optional additional LoginModules, flags and options>;
};
, но я не могу найти пример, который объясняет, как я работаю.
Это так?хороший метод?
Спасибо
========================================
Вот мой ответ:
Действительно, у нас могут быть дополнительные модули входа в систему.Файл конфигурации JAAS:
Sample {
com.sun.security.auth.module.LdapLoginModule Requisite
userProvider="ldap://acme.org:389/OU=Users,OU=_ACME,DC=acmegis,DC=acme,DC=org"
authIdentity="{USERNAME}"
userFilter="(userPrincipalName={USERNAME})"
storePass=true
sample.module.SampleLoginModule required debug=true;
};
Здесь у нас есть два LoginModules:
LdapLoginModule Sun, который проверяет пользователя / пароль, и мой sample.module.SampleLoginModule, который запрашивает мою базу данных и заполняетдиректора школы.Важным параметром является storePass = true, который запрашивает модуль LdapLoginModule для сохранения имени пользователя и пароля в общем состоянии модуля.(см. http://docs.oracle.com/javase/6/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/LdapLoginModule.html).
Так что следующие LoginModules могут получить имя пользователя, переданное методу initialize в аргументе карты sharedState. Они не должны иметь ничего общего с login (), а запрос в DB для заполнения Principales:сделано в commit () (как сказал Шими Бандиэль).
Я еще не использую его, но есть JDBoss, разработанный DatabaseServerLoginModule (см. http://community.jboss.org/wiki/DatabaseServerLoginModule), который поддерживает аутентификацию и сопоставление ролей. Используется ссоставление пароля = useFirstPass у нас должен быть ответ на мои вопросы, без записи какого-либо строкового кода (но красивый файл конфигурации JAAS).
BR