我有一个使用的网络应用程序,
我有一个关于在使用Spring Security时获取会话的问题。假设bean由Spring管理。
可以使用Spring Security获取用户会话,如下所示。
RequestAttributes currentRequestAttributes = RequestContextHolder.currentRequestAttributes();
currentRequestAttributes.getAttribute("attributeName", RequestAttributes.SCOPE_SESSION);
或
ServletRequestAttributes servletRequestAttributes=(ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
servletRequestAttributes.getAttribute("attributeName", ServletRequestAttributes.SCOPE_SESSION);
甚至
ServletRequestAttributes servletRequestAttributes=(ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession session = servletRequestAttributes.getRequest().getSession();
session.getAttribute("attributeName");
或者如果它单独是Spring MVC,它可以简单地像
那样获得request.getSession().getAttibute("attributeName")
在Spring控制器中。
如果用户会话以JSF方式公开,会发生什么?如下所示?
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpSession session = (HttpSession) context.getSession(true);
Object attribute = session.getAttribute("attributeName");
Spring Security是否可以控制会话?
在使用这样的框架组合时获取用户会话的正确方法是什么?这是实验性的(或多或少)。
免责声明:)