我们使用 Spring Security 来保护我们的 Controller 方法。假设我有一个允许我编辑 Foo 的 Controller 。
@Controller
@Secured({"FOO_ADMINISTRATOR"})
public class FooEditorController {
...
}
现在我需要在 UI 中添加一个菜单,让用户可以访问 Foo 编辑器。但我只想向有权访问 FooEditorController 的用户展示该菜单选项。此外,如果可能的话,我想将这些信息保存在一个地方。也就是说,当我指定 Foo 编辑器的菜单选项仅限于具有 FOO_ADMINISTRATOR 角色的菜单选项时,我只想查询 FooEditorController 并询问它需要什么角色。这样,这些信息就可以在一个地方定义。
(我尝试创建角色数组并在两个地方使用它们,但 @Secured 注释不允许这样做。@Secured 需要数组初始值设定项。)
或者也许有更好的方法来解决这个问题?
最佳答案
如果您想访问 @Secured 注释中指定的角色(或任何注释中指定的值),您可以使用反射来实现:
String[] roles = FooEditorController.class.getAnnotation(Secured.class).value();
关于java - 有没有办法访问@Secured中指定的角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323820/