Spring添加了一个JSESSIONID,尽管没有状态的会话管理
2022-09-03 07:38:59
我正在使用具有以下配置的 Web 应用程序的工作 JWT 身份验证:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.exceptionHandling()
.authenticationEntryPoint(
(req, rsp, e) -> p.sendError(HttpServletResponse.SC_UNAUTHORIZED))
.and()
.addFilter(new UsernamePasswordAuthenticationFilter(authenticationManager(),
jwtConfig))
.addFilterAfter(new JwtTokenAuthenticationFilter(jwtConfig),
UsernamePasswordAuthenticationFilter.class)
.authorizeRequests()
.antMatchers(HttpMethod.POST, jwtConfig.getUri()).permitAll()
.anyRequest().authenticated();
}
截至我预计春季不会自己创建会话。但是,如果我访问除 以外的任何其他资源,我仍然会在响应标头中看到以下条目:SessionCreationPolicy.STATELESS
/login
set-cookie: JSESSIONID=...; Path=/; HttpOnly
有人可以解释这是从哪里来的(也许不是来自春天),如果它仍然来自春天,需要改变什么?
编辑:
在我的控制器中进行测试时,会话仍会注入,如上述令牌所示。我仍然不知道这是从哪里来的。
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public void create(HttpSession session) {
if (session != null) {
System.out.println("Session is existing"); // executes
}
}