spring - 配置自定义权限评估器时如何避免警告消息“不符合所有 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;
}
}
权限工作正常,初始化应用程序时消息很烦人,我想知道以这种方式配置自定义权限评估器时我做错了什么,或者我如何修复它以获取此类零消息?
如果我删除该配置代码,则不会显示该消息。
解决方案
推荐阅读
- python - ImportError:AppEngine中没有名为cloud的模块,python
- javascript - 使用 reactjs 访问 dom 元素
- flutter - 颤动的webview底部导航不加载网站页面
- node.js - 谷歌云 sql 数据库错误:ER_NO_SUCH_TABLE:NodeJS 中的“mydb.register”
- http - Ionic v5 未使用 Capacitor 连接到 Rest API
- javascript - 在 Node.JS 中使用 multer 更改每个路由的 cloudinary 文件夹
- python - 在 DataFrame 中查找不同的最佳匹配
- javascript - 如果我们已经在检查长度,为什么还要检查一个值
- docker - Docker 标签:使用 / 作为 docker 标签的一部分
- android - 我想在启动屏幕而不是登录屏幕后启动主要活动