【发布时间】:2016-05-18 17:21:32
【问题描述】:
我想使用自定义注释标记类中的方法,该注释将使用 Spring Security 控制授权决策。例如:
@Role("ADMIN")
public void accessControlledMethod(){}
我了解这意味着我需要以某种方式注册我的自定义注释“角色”,以便当AccessDecisionManager 做出授权决定时它可以导致ConfigAttributes 存在。但是,我不明白如何使用 spring security 注册我的自定义注释以便识别它。
我在框架代码中看到了一种潜在的解决方案。有一个名为 SecuredAnnotationSecurityMetadataSource 的类,其文档说“为自定义注释注入 AnnotationMetadataExtractor”。如果这是首选方法,我不确定如何配置 SecuredAnnotationSecurityMetadataSource 或如何将 AnnotationMetadataExtractor 注入其中。
【问题讨论】:
-
您使用自定义注解而不是 Spring Security 提供的注解是否有原因?
-
@XtremeBiker 我的团队有一个现有的授权框架,该框架使用特定于我们应用程序的不同命名约定。我想在我们的方法安全注释中使用这些角色名称。方法文档清楚地表明这是受某种支持的,但我找不到任何关于它如何工作的信息。
标签: java spring spring-security annotations