【问题标题】:Two SecurityConfig class in a spring boot projectspring boot项目中的两个SecurityConfig类
【发布时间】:2016-12-22 09:44:01
【问题描述】:

我正在使用的外部库中已经有一个 SecurityConfig 类。

我想要另一个 SecurityConfig 类,以便使用 addFilterBefore 和 addFilterAfter 在我的项目中注册更多过滤器。

我只是在我的项目中添加以下内容,但出现以下错误,

@Configuration
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class MySecurityConfig extends WebSecurityConfigurerAdapter {       
}

org.springframework.beans.factory.BeanCreationException: 错误 用名字创建bean 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': 注入自动装配的依赖项失败;嵌套异常是 java.lang.IllegalStateException: @Order on WebSecurityConfigurers 必须 是独一无二的。 100 的订单已被使用,因此无法使用 com.pearson.springtools.config.SecurityConfig$$EnhancerBySpringCGLIB$$f0407fdb@7326eb0d 也是。

【问题讨论】:

  • 您是否尝试执行错误中提到的操作? WebSecurityConfigurerAdapter 指定 100 的顺序(通过使用 @Order(100) 注释)。那么您是否尝试自己使用 @Order 注释为您的一个配置指定另一个顺序?

标签: java spring-security spring-boot


【解决方案1】:

一次只能使用 WebSecurityConfigurerAdapter。如果要在同一配置中使用多个,则必须在其中至少一个上添加 @order 注释以指定应考虑它们的顺序。要使用自定义的,请使用最高顺序。

@Configuration
@EnableWebMvcSecurity
@Order(Ordered.HIGHEST_PRECEDENCE)
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class MySecurityConfig extends WebSecurityConfigurerAdapter {       
}

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,在您的网络安全上应用 @Order(99) 它将修复。

    @Configuration
    @EnableWebSecurity
    @EnableGlobalMethodSecurity(prePostEnabled = true)
    @EnableAutoConfiguration(exclude = {
            org.activiti.spring.boot.RestApiAutoConfiguration.class,
            org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
            org.activiti.spring.boot.SecurityAutoConfiguration.class})
    @ComponentScan(basePackages = {"com.onlineBankingApplication"})
    @Order(99)
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    

    【讨论】:

    • 没有用。如果我使用 99,则不会调用扩展 WebSecurityConfigurerAdapter 的 securityConfig 类。
    猜你喜欢
    • 2017-06-03
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2014-05-29
    • 2023-04-09
    • 2018-09-12
    相关资源
    最近更新 更多