Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java invalidateHttpSession在Spring security中做什么?_Java_Spring - Fatal编程技术网

Java invalidateHttpSession在Spring security中做什么?

Java invalidateHttpSession在Spring security中做什么?,java,spring,Java,Spring,我在理解JSessionId及其工作原理方面有问题 我正在为我的web应用程序实现一个/logoutRest端点: http .csrf().disable() .authorizeRequests() .anyRequest().authenticated() .and() .logout() .logoutUrl("/logout") .invali

我在理解
JSessionId
及其工作原理方面有问题

我正在为我的web应用程序实现一个
/logout
Rest端点:

    http
        .csrf().disable()
        .authorizeRequests()
            .anyRequest().authenticated()
        .and()
        .logout()
            .logoutUrl("/logout")
            .invalidateHttpSession(true)
            .logoutSuccessHandler(new HttpStatusReturningLogoutSuccessHandler(HttpStatus.OK))
        .and()
        .addFilterBefore(
            new JWTAuthenticationFilter(userDetailsServiceBean()),
            UsernamePasswordAuthenticationFilter.class);
当我对
/logout
进行POST调用时,我仍然从服务器的响应中获得
JSESSIONID
cookie。当我调用需要身份验证的端点时:

@RequestMapping(path="/greeting",method=RequestMethod.POST)
public Greeting doGreeting(Principal principal, SecurityContextHolder auth) {
    String userId = principal.getName();
    Greeting greeting = new Greeting(counter.incrementAndGet(), String.format(template, userId));
    return greeting;
}
我仍然可以让
原则
工作。
JSESSIONID
的用途是什么?它与身份验证方法相比如何


注意:我使用JWT进行身份验证。我在请求的头中发送一个JWT令牌

如果您处于无状态环境(JWT),为什么要使用JSESSIONID?顺便说一句,如果您使用的是JWT,您需要使用
http.sessionManagement().sessionCreationPolicy(sessionCreationPolicy.STATELESS)
禁用会话创建,我不会在代码中的任何地方设置JSSessionID!我用的是弹簧靴。是否有可能是它自己设置的,而我需要将其关闭?要将其关闭
http.sessionManagement().sessionCreationPolicy(sessionCreationPolicy.STATELESS)
您可以查看以了解更多信息invalidateHttpSession做什么?它是否只负责处理JSESSIONID?您需要清理浏览器cookie。登录时,您是否在http响应中仍然看到
set cookie
头?