Session Spring Security Oauth2,禁用会话的应用程序行为

Session Spring Security Oauth2,禁用会话的应用程序行为,session,spring-security,session-cookies,spring-security-oauth2,spring-session,Session,Spring Security,Session Cookies,Spring Security Oauth2,Spring Session,我在REST服务中禁用了会话管理,因为我正在使用Oauth2对客户机+用户进行身份验证。所以我有这些配置: 资源服务器 @Configuration @EnableResourceServer public class ResourceServerConfig extends ResourceServerConfigurerAdapter { @Override public void configure( HttpSecurity http ) throws Exception {

我在REST服务中禁用了会话管理,因为我正在使用Oauth2对客户机+用户进行身份验证。所以我有这些配置:

资源服务器

@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
  @Override 
  public void configure( HttpSecurity http ) throws Exception {
    http.sessionManagement().sessionCreationPolicy( SessionCreationPolicy.STATELESS );
    //....
  }
}
以及基本身份验证:

@Configuration
@EnableWebSecurity
public class SecurityWebConfig extends WebSecurityConfigurerAdapter {
   @Override 
  public void configure( HttpSecurity http ) throws Exception {
    http.sessionManagement().sessionCreationPolicy( SessionCreationPolicy.STATELESS );
    //....
  }
}
我不知道在这两种配置中这样做是否相关

现在,当我使用经过身份验证的客户端(包括访问令牌)向受保护路径发送请求时。响应头包含一个
JSESSIONID
类似

set cookie:JSESSIONID=A3E6E26C28916C5D95795E934F15C8F1
这是正常的行为吗

为了进一步测试,我做了以下操作(以获取当前连接的用户):

记录结果如下:

Connected user: username@mail.com
Is session null: false
那么为什么
HttpSession
不为空呢

在我看来,我认为Spring安全上下文依赖于会话来获取经过身份验证的用户,也就是说,如果会话被禁用,安全上下文就找不到当前用户。我错了吗?有人能给我澄清一下这些问题吗

最后,即使会话被禁用,我是否可以始终依靠OAuth2Authentication查找当前连接的客户端和用户


非常感谢

,我应该回答您的一些问题谢谢@Vasan,但一点也不清楚。
Connected user: username@mail.com
Is session null: false