Spring Security怎么实现普通用户和后台管理员认证分离?

发布于 2022-09-04 06:18:19 字数 1102 浏览 21 评论 0

1.我想用Spring Security实现普通用户使用一个登录入口和一个AuthenticationProvider,后台管理员使用另一个一个登录入口和另一个AuthenticationProvider。但是Spring官网上说,所有的AuthenticationProvider都是由ProviderManager管理的,有多个provider,他们将会被按顺序进行尝试(内部使用了一个List),每个provider都可以尝试进行认证,或者简单的通过返回null来跳过认证。直到认证通过为止。我想问能不能一个HttpSecurity对应一个AuthenticationProvider,这样就不用做多余尝试了。

现在我在一个类中定义了两个HttpSecurity,请问有什么解决方法吗?:

@Configuration
    public static class UserLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
    ...
     @Override
        protected void configure(HttpSecurity http) throws Exception {
           
            http.authorizeRequests()
                    .antMatchers("/")
                   ...
    }
    
   //管理员登录配置
    @Configuration
    @Order(1)
    public static class AdminWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {   
    ...
    
     @Override
        protected void configure(HttpSecurity http) throws Exception {
           
            http.authorizeRequests()
                    .antMatchers("/admin/**")
                   ...
    }
    } 
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小糖芽 2022-09-11 06:18:19

请问你解决怎么个问题了吗?我也想这么做 不知道怎么处理

清泪尽 2022-09-11 06:18:19

security 按 pattern 分开配合 2个

断舍离 2022-09-11 06:18:19

请问现在解决了吗,我现在遇到了同样的问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文