У меня есть следующая форма входа в JSF 2.1, работающая в Glassfish 3.1
<h:form id="loginForm">
<h:panelGrid columns="2" cellspacing="5">
<h:outputText value="Username" />
<h:inputText value="#{loginHandler.username}" />
<h:outputText value="Password:" />
<h:inputText value="#{loginHandler.password}" />
<h:outputLabel value="" />
<h:commandButton value="Login" action="#{loginHandler.login}" />
</h:panelGrid>
</h:form>
И следующий компонент поддержки.
public String login() throws IOException, LoginException {
log.debug("Trying to login with username " + username);
HttpSession session = getRequest().getSession(true);
try {
getRequest().login(username, password);
// if OK, add Roles
????????
...................
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.debug("USER principal === " + getRequest().getUserPrincipal());
return "home";
}
Вопрос в том, как я могу программно добавлять роли в UserPrincipal после успешного входа в систему?
Обновление 1: Я попытался получить Subject, используя следующий код, но subject == null.
Subject thisSubject = Subject.getSubject(AccessController
.getContext());
Спасибо, Коэн