我有一个使用 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/