【发布时间】:2017-08-16 01:52:45
【问题描述】:
我正在尝试添加 MANAGER 角色。拥有 MANAGER 的用户必须能够创建其他用户。
我已经更新了 AuthoritiesConstants.java 如下:
public final class AuthoritiesConstants {
public static final String ADMIN = "ROLE_ADMIN";
public static final String USER = "ROLE_USER";
public static final String ANONYMOUS = "ROLE_ANONYMOUS";
public static final String MANAGER = "ROLE_MANAGER";
private AuthoritiesConstants() {
}
}
我也更新了 authority.csv:
name
ROLE_ADMIN
ROLE_USER
ROLE_MANAGER
我尝试像这样更新 UserResource.java:
@PostMapping("/users")
@Timed
@Secured({AuthoritiesConstants.ADMIN,AuthoritiesConstants.MANAGER})
public ResponseEntity createUser(@Valid @RequestBody ManagedUserVM managedUserVM) throws URISyntaxException {
log.debug("REST request to save User : {}", managedUserVM);
}
还有这个:
@RestController
@RequestMapping("/api")
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class UserResource {
@PostMapping("/users")
@Timed
@PreAuthorize("hasAnyRole('ROLE_ADMIN','ROLE_MANAGER')")
public ResponseEntity createUser(@Valid @RequestBody ManagedUserVM managedUserVM) throws URISyntaxException {
log.debug("REST request to save User : {}", managedUserVM);
//....
}
//....
}
我已登录 Angular UI 并创建了一个具有 ROLE_MANAGER 和 ROLE_USER 角色的用户 toto。我已经更新了 html 文件,以便拥有 ROLE_MANAGER 的用户可以访问用户管理页面。
当用户提交用户创建表单时,后端响应状态为 403 (Forbidden)。
【问题讨论】:
-
我正在使用角度 UI。对于经理角色,我添加了 public static final String MANAGER = "ROLE_MANAGER";到 AuthoritiesConstants 和 ROLE_MANAGER 到 authority.csv
-
我使用具有 ROLE_MANAGER 角色的用户登录。不,我不会更改 SecurityConifguration 中的任何内容。
-
作为 admin ,我在 Angular UI 中创建了一个新用户并将这个角色分配给他。仅供参考,指令 *jhiHasAnyAuthority="['ROLE_MANAGER']" 工作正常。
-
对不起,我放弃了,获取详细信息需要太多时间,而且您的所有问题总是缺少基本详细信息。
-
好的。我将使用我所做的所有修改以及我打算做什么来编辑问题。