当前位置: 首页 > 面试题库 >

如何使Spring Boot从不发布会话Cookie?

娄德运
2023-03-14
问题内容

我正在通过使用Spring Boot开发Restful API服务器。我将
项目配置为使用基本身份验证,如下所示。

@ComponentScan
@EnableAutoConfiguration
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    ...
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER).and()
            .csrf().disable()
            .authorizeRequests().anyRequest().hasRole("USER").and()
            .httpBasic();
    }
    ...
}

但是,当我通过Chrome-Postman-Plugin测试API时,第一次调用后,服务器
不再需要用户凭据。我注意到创建了“ JSESSIONID” cookie 。

我的项目中没有其他安全配置。我不知道为什么


问题答案:

您是否尝试过使用SessionCreationPolicy.STATELESS。有一个微妙
的差异STATELESS,并NEVER在春季
文档:

STATELESS:Spring Security永远不会创建HttpSession,也
永远不会使用它来获取SecurityContext。

NEVER:Spring Security永远不会创建一个HttpSession,但是会使用
HttpSession(如果已经存在)。

因此,我建议您清除所有cookie,将其切换为重STATELESS试。 切换到HttpSession时可能已经有一个。
NEVER



 类似资料:
  • 在发布这个问题之前,我谷歌了很多这个问题,并且在网络Socket@ServerEndpoint中从HttpServletRequest访问Http会话是我能找到的最好的问题/答案之一,但它似乎不能解决我的问题。 我可以通过这种方式从websocket访问HttpSession,但是我无法访问与普通HTTP请求相同的CDI会话bean实例。 我也尝试在会话中存储Weld实例,并尝试在WebSocke

  • 问题内容: 我有一个应用程序,需要能够通过身份验证请求然后向注册请求发布到https。目前,我可以将身份验证请求发布到https,并且工作正常。当我尝试将注册请求发布到https时,我不断收到服务器响应,说我需要进行身份验证。在尝试注册之前,我正在认证。 服务器的管理员说我可能没有保留该会话。 我是第一次使用android和java做东西。我是这个https内容的新手。我想知道是否有人可以在这里帮

  • 问题内容: 会话文件通常存储在(例如)服务器上,并命名为。我一直在查看内容,但无法弄清楚它们是如何工作的。 从文件中获取变量名称和内容很容易。但是PHP如何知道哪个会话属于谁? session_id似乎是完全随机的,一个IP地址可以有多个用户,并且每个用户打开多个浏览器窗口时可以有多个会话。 那么它是怎样工作的? 问题答案: 在一般情况下: 会话ID在用户创建会话后发送给用户。 它存储在cooki

  • 问题内容: 我有两节课: 用户 还有另一个这样的类: 角色 : 我写了这样的集成测试: 此测试工作正常。但是,当我将以下行添加到上面的测试代码中时: 我收到这样的错误: 这是怎么回事?我哪里错了? 我正在使用Grails 2.0。 提前致谢。 问题答案: 出现此错误的原因是,当执行语句Role.findBy静态方法时,Hibernate(grails GORM使用)将检查是否需要“ autoFlu

  • 我正在Codeigniter中创建API。在这个API中,我为用户提供了一个登录函数。如果登录成功,我将在CI会话中设置用户数据,并将会话返回给用户。 现在,用户可以使用该会话ID来验证他自己的所有其他请求,如添加/更新/删除。基本上,我希望当用户发送下一个请求时,我可以根据他的会话ID验证他的凭据。 客户请求代码: 上面是一个从客户端到服务器的登录请求示例。在服务器端,服务器验证客户端提供的凭据

  • 我正在尝试根据下面的代码提出帖子请求: 此请求不需要身份验证,也不需要登录和密码。在邮递员那里,我可以成功地提出请求,但当我尝试执行上述代码时,我得到了: 401未经授权 我在邮递员那里模拟了错误,它给了我下面的信息: 当我在Postman中将身份验证方法更改为“No Auth”时,请求运行良好。 我想我必须在代码中设置这个选项“No Auth”,但我不知道如何设置。 我这样做: 但错误仍在继续。