首页 > Java > java教程 > 为什么我的具有多个 HTTP 配置的 Spring Security 配置不起作用?

为什么我的具有多个 HTTP 配置的 Spring Security 配置不起作用?

Mary-Kate Olsen
发布: 2024-11-29 18:05:17
原创
749 人浏览过

Why Doesn't My Spring Security Configuration with Multiple HTTP Configurations Work?

Spring Security:多个 HTTP 配置无法正常工作

人们可能会遇到一种情况,需要多个 HTTP 配置来定制登录页面和安全 URL访问,如以下场景所示:

@Configuration
@Order(1)
public static class ProviderSecurity extends WebSecurityConfigurerAdapter {
    // Security configuration for admin/* routes
}

@Configuration
@Order(2)
public static class ConsumerSecurity extends WebSecurityConfigurerAdapter {
    // Security configuration for consumer/* routes
}
登录后复制

但是,这种方法可能会导致只有一个的差异配置已激活。要解决这个问题,请参阅 Spring Security 参考指南:

@EnableWebSecurity
public class MultiHttpSecurityConfig {
    // Authentication configuration

    @Configuration
    @Order(1)
    public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
        // Security configuration for /api/* routes
    }

    @Configuration
    public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
        // Security configuration for all other routes
    }
}
登录后复制

要点:

  • 照常配置身份验证。
  • 指定多个的处理顺序使用@Order进行配置。
  • 使用antMatcher根据URL限制特定配置的范围

在前面的示例中,出现问题的原因是第一个带有 /antMatcher 的配置(匹配所有 URL)覆盖了第二个配置,导致第二个配置的 URL 不受保护。通过将第一个配置的范围限制为仅 /admin/,第二个配置的 URL 可以获得适当的安全机制。

以上是为什么我的具有多个 HTTP 配置的 Spring Security 配置不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板