首页 > 解决方案 > 配置自定义权限评估器时如何避免警告消息“不符合所有 BeanPostProcessors 处理的条件”消息

问题描述

在配置自定义权限评估器时,在 Spring Boot 中配置自定义 GlobalMethodSecurityConfiguration 会生成“不符合所有 BeanPostProcessors 处理的条件”消息,它没有任何 @Autowired(自定义权限评估器都没有)

    2020-05-24 19:43:17.430  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'customPermissionEvaluator' of type [test.data.security.CustomPermissionEvaluator] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2020-05-24 19:43:17.455  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration' of type [org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2020-05-24 19:43:17.458  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'objectPostProcessor' of type [org.springframework.security.config.annotation.configuration.AutowireBeanFactoryObjectPostProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2020-05-24 19:43:17.460  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@68b734a8' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2020-05-24 19:43:17.461  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'securityMethodConfig' of type [test.data.config.SecurityMethodConfig$$EnhancerBySpringCGLIB$$39af5526] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    2020-05-24 19:43:17.465  INFO 9848 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

我使用此配置,只需添加它即可显示警告

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
class SecurityMethodConfig extends GlobalMethodSecurityConfiguration {

    private CustomPermissionEvaluator customPermissionEvaluator;

    public SecurityMethodConfig( CustomPermissionEvaluator customPermissionEvaluator ) {
        this.customPermissionEvaluator=customPermissionEvaluator;
    }

    @Override
    public MethodSecurityExpressionHandler createExpressionHandler() {
        DefaultMethodSecurityExpressionHandler methodSecurityExpressionHandler = new DefaultMethodSecurityExpressionHandler();
        methodSecurityExpressionHandler.setPermissionEvaluator(customPermissionEvaluator);
        return methodSecurityExpressionHandler;
    }
}

我什至尝试不使用自定义权限评估器,使用 proxyTargetClass = true 并且没有它并且显示相同的消息

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
class SecurityMethodConfig extends GlobalMethodSecurityConfiguration {
   @Override
    public MethodSecurityExpressionHandler createExpressionHandler() {
        DefaultMethodSecurityExpressionHandler methodSecurityExpressionHandler = new DefaultMethodSecurityExpressionHandler();
        return methodSecurityExpressionHandler;
    }
}

权限工作正常,初始化应用程序时消息很烦人,我想知道以这种方式配置自定义权限评估器时我做错了什么,或者我如何修复它以获取此类零消息?

如果我删除该配置代码,则不会显示该消息。

标签: springspring-bootspring-security

解决方案


推荐阅读