java - Spring安全角色和权限

标签 java spring-mvc spring-security

我有一个使用 Spring MVC 和 Spring Security 的项目。

角色:

ROLE_USER and ROLE_ADMIN

权限:

READ_PRIVILEGE, WRITE_PRIVILEGE

角色和权限之间:

ROLE_ADMIN -> READ_PRIVILEGE AND WRITE_PRIVILEGE
ROLE_USER -> READ_PRIVILEGE

情况如下:

我有一个 Controller ,我想使用注释来保护操作

@PreAuthorize("hasRole('ROLE_ADMIN')") 

类似这样的事情:

@RequestMapping(value = "/admin/usersAndRoles", method = RequestMethod.GET, produces = "application/json")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public @ResponseBody String usersAndRoles(HttpServletRequest request) throws IOException 

但是注释不起作用,但是如果我将代码更改为这样的内容就可以了:

@RequestMapping(value = "/admin/usersAndRoles", method = RequestMethod.GET, produces = "application/json")
@PreAuthorize("hasRole('WRITE_PRIVILEGE')")
public @ResponseBody String usersAndRoles(HttpServletRequest request) throws IOException 

任何人都可以给我一个提示吗? 我不想用权限来限制操作,我更喜欢角​​色限制。

提前致谢。

最佳答案

如何配置权限和角色?

默认情况下,hasRole("role") 检查“role”是否在经过身份验证的用户的 GrantedAuthorities 中,因此只要您在那里拥有角色,它就应该可以工作。

也许您正在使用您作为 GrantedAuthorities 的权限?

关于java - Spring安全角色和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844529/

相关文章:

spring - Spring MVC 应用程序下的共享 HashMap

java - 如何将对象从 View 传递到java函数?

java - 获取 Spring Servlet 应用程序上下文

java - 如何创建带有复选框项目的组合框?

java - GWT 样式问题

java - Spring 3.1 MVC Web应用程序中的安全性和Webflow配置示例?

java - Spring 方法级别安全性在第二次调用时失败

database - Spring Security 没有基于角色的使用数据库

java - 准备好的陈述有问题

java - 如何在Spring-xd中上传模块?