Мне нужно установить идентификатор пользователя в качестве атрибута сеанса после входа в систему, используя модуль ввода формы Java EE.Установить атрибут сеанса после входа в систему
Сейчас, после входа в систему, я отправляю еще один HTTP-запрос, который устанавливает ID как атрибут сеанса, но мне нужно сделать это за один шаг. Каков наилучший способ сделать это?
конфигурация Войти модуля в standalone.xml:
<login-module code="com.MyLoginModule" flag="required">
<module-option name="dsJndiName" value="java:/PostgresDS"/>
<module-option name="principalsQuery" value="select password from appuser where email=?"/>
<module-option name="rolesQuery" value="select 'AUTHENTICATED', 'Roles' from appuser where email=?"/>
<module-option name="hashAlgorithm" value="custom"/>
</login-module>
Дополнительный запрос после входа в систему (Resteasy):
@GET
@Path("/web")
@Produces(MediaType.APPLICATION_JSON)
public User getUser(@Context HttpServletRequest hsr) throws MyRuntimeException{
User u;
HttpSession session = hsr.getSession();
u = um.getUserByMail(hsr.getUserPrincipal().getName());
session.setAttribute("userId", u.getId());
return u;
}
MyLoginModule:
public class MyLoginModule extends DatabaseServerLoginModule {
@Override
public String createPasswordHash(String username, String password, String digestOption){code}
}
Начиная с WF 8, JBoss больше не использует клапаны, но Undertow http-обработчики. –