У меня есть веб-приложение jsf, которое поддерживает пользовательский сеанс через компонент @SessionScoped.
И тогда у меня есть служба отдыха для вызова метода выхода из системы, который используется для аннулирования сеанса пользователя.
Однако, когда я вызываю службу rest, request.getSession () не имеет атрибутов, установленных bean-компонентом @SessionScoped. Также недействительным сеанс также не работает.
Когда снова вызывается компонент @SessionScoped, его собственный сеанс с атрибутами все еще доступен.
Службы отдыха создают отдельный сеанс, отличный от сеанса лиц? Если так, как я могу сделать недействительным сеанс через службу отдыха (это должно быть через службу отдыха, а не управляемый компонент или какой-либо компонент cdi bean)
@Path("logout")
@RequestScoped
public class LogoutEndpoint {
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public boolean op( @Context final HttpServletRequest request) {
HttpSession httpSession = (HttpSession)request.getSession();
httpSession.invalidate();
}
}