我想避免在用户请求静态资源(如css文件)时创建会话。 Howerver,即使在告诉WebSecurity忽略这个静态资源路径之后,我注意到我的SpringBoot应用程序的所有响应仍然具有JSESSIONID cookie。为什么呢?
{{1}}
我使用Spring Security保护我的应用程序....但是对于这些静态资源的请求,我不想创建或验证会话。
答案 0 :(得分:0)
我发现了这个问题。这都怪我。我正在使用Spring Security和扩展的RequestHeaderAuthenticationFilter。虽然web.ignoring()...确实避免了所有Spring Security身份验证/授权检查,但它仍然会运行自定义筛选器。
在我的一个过滤器中,我有以下几行:
HttpServletRequest req = ((HttpServletRequest) request);
HttpSession session = req.getSession();
我用它来检查一个会话是否已经存在以及我是否需要刷新它(这里太复杂了解释)。但是method,req.getSession()
将创建一个新会话(如果它尚不存在)。我没有意识到它有副作用。
相反,我应该致电:req.getSession(false)
。如果会话已存在,则返回会话,如果不存在,则返回null。