Java 是否有方法访问@Secured中指定的角色?
我们正在使用Spring安全性来保护我们的控制器方法。假设我有一个控制器,可以编辑FooJava 是否有方法访问@Secured中指定的角色?,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我们正在使用Spring安全性来保护我们的控制器方法。假设我有一个控制器,可以编辑Foo @Controller @Secured({"FOO_ADMINISTRATOR"}) public class FooEditorController { ... } 现在我需要在我的UI中添加一个菜单,让用户访问Foo编辑器。但我只想向有权访问FooEditorController的用户显示该菜单选项。此外,如果可能的话,我想把信息保存在一个地方。也就是说,当我指定Foo编辑器的菜单选项仅限于具有Fo
@Controller
@Secured({"FOO_ADMINISTRATOR"})
public class FooEditorController {
...
}
现在我需要在我的UI中添加一个菜单,让用户访问Foo编辑器。但我只想向有权访问FooEditorController的用户显示该菜单选项。此外,如果可能的话,我想把信息保存在一个地方。也就是说,当我指定Foo编辑器的菜单选项仅限于具有Foo_管理员角色的菜单选项时,我只想查询FooEditorController并询问它需要哪些角色。这样,这些信息在一个地方定义
(我尝试创建角色数组并在这两个位置使用它们,但@Secured注释不允许这样做。@Secured需要数组初始值设定项。)
或者有更好的方法来解决这个问题 如果要访问
@Secured
批注中指定的角色(或任何批注中为此指定的值),可以使用反射来实现:
String[] roles = FooEditorController.class.getAnnotation(Secured.class).value();