【问题标题】:Spring security roles and permissionsSpring 安全角色和权限
【发布时间】:2015-10-28 22:31:46
【问题描述】:

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

角色:

ROLE_USER and ROLE_ADMIN

权限:

READ_PRIVILEGE, WRITE_PRIVILEGE

以及角色和权限之间:

ROLE_ADMIN -> READ_PRIVILEGE AND WRITE_PRIVILEGE
ROLE_USER -> READ_PRIVILEGE

情况如下:

我有一个控制器,我想用注释来保护操作

@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 

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

提前致谢。

【问题讨论】:

    标签: java spring-mvc spring-security


    【解决方案1】:

    如何配置权限和角色?

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

    也许您将您的权限用作 GrantedAuthorities?

    【讨论】:

    • 是的,问题出在我的自定义 UserDetailsS​​ervice 上的 loadUserByUsername 上。谢谢。
    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2012-06-07
    • 2012-04-08
    • 2011-08-21
    • 2018-12-30
    相关资源
    最近更新 更多