当前位置: 首页 > 知识库问答 >
问题:

Spring Security针对公共endpoint的意外行为

白修谨
2023-03-14

我有一个Spring HttpSecurity配置

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    .sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    http.csrf().disable().httpBasic().and()
        .authorizeRequests()
            .antMatchers("/public/**").permitAll()
            .antMatchers("/secure/**").authenticated()
            .antMatchers("/backend/**").authenticated()
            .antMatchers(HttpMethod.OPTIONS, "/**").permitAll();
}

客户端为“/public/**”endpoint设置授权标头可能很愚蠢。

但是,我注意到Spring Security尝试进行身份验证,甚至尝试为公共请求创建经过身份验证的会话,因为提供了授权标头。

HttpSecurity配置是否应该覆盖此行为?

共有1个答案

司寇祖鹤
2023-03-14

在评论中回答:

不,不应该。。。许可证是一种完全不安全的东西。对于后者,重写“configure(WebSecurity)”,并使用“ignering”(忽略)来实现任何安全性。

 类似资料:
  • 使用Vue。js我试图用Spring Boot在RESTful API中实现JWT登录表单,但除非我向请求中添加承载令牌,否则我得到的只是403状态。我已经将endpoint设置为无需任何许可即可访问,并且在postman上可以在没有授权标头的情况下发送请求。这是我在Spring上的安全配置的一部分: 这就是vue。我发出发帖请求的js服务: 我想这样做,这样就不需要令牌来访问您请求相同令牌的部分

  • 问题内容: 前一阵子,在使用Class.getMethod和自动装箱时,我遇到了类似的问题,因此在自己的查找算法中实现它很有意义。但是,真正让我感到困惑的是,以下两种方法也不起作用: String.class实现了Serializable接口,我确实希望它包含在lookup方法中。 我也必须在自己的查找算法中考虑这一点吗? 编辑 :我确实读过Javadoc, 所以让我强调一下问题的第二部分 :如果

  • 我是Python的新手,我对Python处理空对象的方式有点困惑。 考虑这段代码; 我得到了这段代码的以下输出。 我假设由{}初始化的对象是有效对象。为什么Python不那样对待它?为什么要得到diff If条件的diff输出? 在C++中,当我说 如果obj不是NULL,它将进入IF块(不管它是垃圾值还是其他) 但当我翻译成Python时也是一样的。 为什么?我读到Python将{}计算为fal

  • 请注意,NULL字节始终存在,您可以使用检查它。 我知道我可以使用获得类似的结果。我不是在问其他选择,我只是想了解格式字符(如doc所说的“NUL填充字符串”)背后的逻辑。 “NULL”值在哪里涉及到所有这些?

  • 我有以下输入字符串: 这里有各种各样的错误:标题前面有“。”应该是ID后面的分隔符。作者姓名的最后两个字符出现在日期字段中,实际日期丢失。 我怎样才能纠正这些问题?

  • 问题内容: 我有以下代码: 我希望它返回“ 05/20/2012”,但它返回“ 04/20/2012” 这对我来说毫无意义-有人可以帮助我了解发生了什么以及如何获得正确的响应吗? 感谢您的关注! 问题答案: 从零开始。如和 尝试