spring-security java config:如何配置多个AuthenticationManager实例

然后

我用:

  • 弹簧靴:1.1.7
  • 弹簧安全性:4.0.0.M2
  • spring-fmk:4.1.1。发布

一切都使用Java Config进行配置(包括spring-security)

我正在使用身份验证:基本base64Gibberish标头用于验证用户的Web服务器项目。

问题是取决于URI的AuthenticationManager不同(因为我需要2个不同的)UserDetailsService

  • / URI1 / ** => authManager1
  • / URI2 / ** => authManager2

我试过的多个扩展名WebSecurityConfigurerAdapter

@Override
@Bean( name = "authManager1" )
public AuthenticationManager authenticationManagerBean() throws Exception
@Override
@Bean( name = "authManager2" )
public AuthenticationManager authenticationManagerBean() throws Exception

无济于事

我总是得到:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' 
defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: Instantiation of bean failed; 
nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: 
Factory method [public javax.servlet.Filter org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain() throws java.lang.Exception] 
threw exception; nested exception is java.lang.IllegalArgumentException: 
Expecting to only find a single bean for type interface org.springframework.security.authentication.AuthenticationManager, 
but found [authManager1, authManager2]

由于我有多个安全过滤器链,我如何“讲” spring-security在不同的安全过滤器链中注入不同的AuthenticationManager?

在此先感谢P。

Serge Ballesta

您可以有多个http配置元素,每个元素都有自己的AuthenticationManager它可能看起来像这样:

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    private AuthenticationManager authenticationManager1() {
        // defines first AuthenticationManager
        return authenticationManager;
    }

    @Bean
    private AuthenticationManager authenticationManager2() {
        // defines second AuthenticationManager
        return authenticationManager;
    }

    @Configuration
    @Order(1)
    public static class Uri1ApiConfigurationAdapter extends WebSecurityConfigurerAdapter {

        @Autowired
        @Qualifier(authenticationManager1)
        private authManager1;

        @Override
        protected AuthenticationManager authenticationManager() {
            return authManager1;
        }

        protected void configure(HttpSecurity http) throws Exception {
            http
                .antMatcher("/URI1/**")
                ...
        }
    }

    @Configuration
    @Order(2)
    public static class Uri2ApiConfigurationAdapter extends WebSecurityConfigurerAdapter {

        @Autowired
        @Qualifier(authenticationManager2)
        private authManager2;

        @Override
        protected AuthenticationManager authenticationManager() {
            return authManager2;
        }

        protected void configure(HttpSecurity http) throws Exception {
            http
                .antMatcher("/URI2/**")
                ...
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Security Java配置

来自分类Dev

LDAP的Spring Security Java Config

来自分类Dev

Stormpath Spring Security Java配置

来自分类Dev

Spring Security 3.2 Java配置

来自分类Dev

Spring Security XML Config与Java Config

来自分类Dev

在Spring Security Java Config中创建多个HTTP部分

来自分类Dev

Spring Security Java Config未注册ContextLoaderListener

来自分类Dev

使用Vaadin进行Spring Security的Java Config

来自分类Dev

Spring Security Java Config未注册ContextLoaderListener

来自分类Dev

Spring Security: Not able to configure method security with java config

来自分类Dev

Spring Security-XML与Java配置

来自分类Dev

Java Spring Security配置-多个身份验证提供程序

来自分类Dev

Spring security java配置和多个http入口点

来自分类Dev

Spring Security-基于Java的配置AuthenticationManager和Http403ForbiddenEntryPoint

来自分类Dev

Spring Security:Java Config:如何添加方法类型?

来自分类Dev

如何配置Spring Security

来自分类Dev

如何为多个身份验证提供程序提供Spring Security的Java配置

来自分类Dev

如何使用Java配置在多个登录方案中使用Spring Security?

来自分类Dev

如何使用Spring-Security 3和Hibernate 4将Spring Security xml配置休眠转换为Java配置

来自分类Dev

如何在Spring Security中配置自定义身份验证过滤器-使用Java Config

来自分类Dev

Spring Security Java Config不生成注销URL

来自分类Dev

没有强制认证的Spring Security Java Config

来自分类Dev

Spring Security Role Hierarchy无法使用Java Config工作

来自分类Dev

Spring Security身份验证提供程序Java配置

来自分类Dev

使用Java配置的Spring Security预身份验证

来自分类Dev

使用UserDetailsService和Java配置登录Spring Security

来自分类Dev

Tomcat重启后基于Spring Security Java的配置

来自分类Dev

没有XML的Spring Security 4.0.0 Java配置

来自分类Dev

使用UserDetailsService和Java配置登录Spring Security

Related 相关文章

  1. 1

    Spring Security Java配置

  2. 2

    LDAP的Spring Security Java Config

  3. 3

    Stormpath Spring Security Java配置

  4. 4

    Spring Security 3.2 Java配置

  5. 5

    Spring Security XML Config与Java Config

  6. 6

    在Spring Security Java Config中创建多个HTTP部分

  7. 7

    Spring Security Java Config未注册ContextLoaderListener

  8. 8

    使用Vaadin进行Spring Security的Java Config

  9. 9

    Spring Security Java Config未注册ContextLoaderListener

  10. 10

    Spring Security: Not able to configure method security with java config

  11. 11

    Spring Security-XML与Java配置

  12. 12

    Java Spring Security配置-多个身份验证提供程序

  13. 13

    Spring security java配置和多个http入口点

  14. 14

    Spring Security-基于Java的配置AuthenticationManager和Http403ForbiddenEntryPoint

  15. 15

    Spring Security:Java Config:如何添加方法类型?

  16. 16

    如何配置Spring Security

  17. 17

    如何为多个身份验证提供程序提供Spring Security的Java配置

  18. 18

    如何使用Java配置在多个登录方案中使用Spring Security?

  19. 19

    如何使用Spring-Security 3和Hibernate 4将Spring Security xml配置休眠转换为Java配置

  20. 20

    如何在Spring Security中配置自定义身份验证过滤器-使用Java Config

  21. 21

    Spring Security Java Config不生成注销URL

  22. 22

    没有强制认证的Spring Security Java Config

  23. 23

    Spring Security Role Hierarchy无法使用Java Config工作

  24. 24

    Spring Security身份验证提供程序Java配置

  25. 25

    使用Java配置的Spring Security预身份验证

  26. 26

    使用UserDetailsService和Java配置登录Spring Security

  27. 27

    Tomcat重启后基于Spring Security Java的配置

  28. 28

    没有XML的Spring Security 4.0.0 Java配置

  29. 29

    使用UserDetailsService和Java配置登录Spring Security

热门标签

归档