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

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/**")
                   ...
    }
    } 
    
阅读 10.2k
3 个回答
新手上路,请多包涵

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

security 按 pattern 分开配合 2个

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏