Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有方法访问@Secured中指定的角色?_Java_Spring_Spring Mvc_Spring Security - Fatal编程技术网

Java 是否有方法访问@Secured中指定的角色?

Java 是否有方法访问@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

我们正在使用Spring安全性来保护我们的控制器方法。假设我有一个控制器,可以编辑Foo

@Controller
@Secured({"FOO_ADMINISTRATOR"})
public class FooEditorController {
...
}
现在我需要在我的UI中添加一个菜单,让用户访问Foo编辑器。但我只想向有权访问FooEditorController的用户显示该菜单选项。此外,如果可能的话,我想把信息保存在一个地方。也就是说,当我指定Foo编辑器的菜单选项仅限于具有Foo_管理员角色的菜单选项时,我只想查询FooEditorController并询问它需要哪些角色。这样,这些信息在一个地方定义

(我尝试创建角色数组并在这两个位置使用它们,但@Secured注释不允许这样做。@Secured需要数组初始值设定项。)


或者有更好的方法来解决这个问题

如果要访问
@Secured
批注中指定的角色(或任何批注中为此指定的值),可以使用反射来实现:

String[] roles = FooEditorController.class.getAnnotation(Secured.class).value();