Я успешно настроил домен безопасности JBoss и могу аутентифицироваться с помощью BASIC-аутентификации (как определено в web.xml).Это все хорошо работает.Однако я не могу понять, как использовать метод http request.login.
Следующий домен безопасности (из jboss-web.xml) работает для BASIC-аутентификации:
<jboss-web>
<context-root>/myapp</context-root>
<security-domain>java:/jaas/myapp-realm</security-domain>
</jboss-web>
Но когда яиспользуйте request.login следующим образом:
public void login() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
request.login(username, password);
}
catch (ServletException ex) {
java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
Я получаю следующее исключение:
javax.servlet.ServletException: Failed to authenticate a principal
Я знаю, что имя пользователя / пароль в порядке (оно работало с использованием BASIC-аутентификации).У меня есть уровень входа TRACE, и он даже не пытается аутентифицироваться.Что я пропустил?
См. http://java -web-development.blogspot.com / 2011/07 / jee-6-security-part-two-creation.html , если вам нужноподробнее о моей настройке / конфигурации.Я использую JBoss 6.