我有一个jsf Web应用程序,它通过@SessionScoped Bean维护用户会话。 然后我有一个休息服务来调用注销方法,该方法用于使用户的会话无效。
但是,当我调用rest服务时,request.getSession()没有@SessionScoped bean设置的属性。使会话无效也无效。
当再次调用@SessionScoped bean时,它自己的属性会话仍然可用。
休息服务是否会创建除会话会话之外的单独会话?如果是这样,我如何通过休息服务使会话无效(它必须通过休息服务而不是托管bean或任何面部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();
}
}