2011-12-28 3 views
2

Я использую Tapestry5 и apache shiro для обеспечения безопасности. Я застрял в аутентификации пользователя из таблицы базы данных.гобелен Широкая проверка подлинности безопасности

В этой функции doGetAuthenticationInfo() нам не нужно задавать тему?

В чем заключается цель SimpleAuthenticationInfo?

ответ

4

Нет лучшего источника ответов, кроме Shiro's javadoc. doGetAuthenticationInfo() возвращает AuthenticationInfo. SimpleAuthenticationInfo - это реализация AuthenticationInfo. Subject "представляет состояние и операции безопасности для одного пользователя приложения", поскольку состояния javadoc, поэтому нет, мы не задаем этот вопрос здесь, но структура неоднократно настраивает его для каждого запроса. Цель (Simple) AuthenticationInfo состоит в том, чтобы представлять «сохраненную учетную информацию» субъекта (аки) пользователя, относящуюся только к процессу аутентификации/входа в систему ». Ответственность области заключается в создании AuthenticationInfo (если пользователь найден), а CredentialsMatcher сравнивает AuthenticationToken с AuthenticationInfo, чтобы определить, действительны ли данные учетных данных или нет.

Вы не объясняете, как вы «застреваете», но при условии, что ваш findByUsername() возвращает соответствующий UserAccount, у вас, вероятно, нет правильного мандата CredentialsMatcher. Возможно, вам понадобится set a HashedCredentialsMatcher to your realm.

Смежные вопросы