【发布时间】:2019-12-21 05:23:46
【问题描述】:
有没有办法在一个类中使用一个局部变量(下面的authorizedRoles),它设置了所有角色来授予对 hasAnyRole 值的端点的访问权限?例如,我想要一个角色列表,在配置中定义,并像这样填充 @PreAuthorize 中的 hasAnyRole:
@Controller("myController")
public class MyController {
private String authorizedRoles;
@Autowired
public MyController(ObjectMapper objectMapper, @Value("#{'${security.authorized-roles}'.split(',')}") String authorizedRoles) {
this.objectMapper = objectMapper;
this.request = request;
this.authorizedRoles = authorizedRoles;
}
@RequestMapping(value = "/id", produces = { "application/json" }, consumes = { "application/json" }, method = RequestMethod.POST)
@PreAuthorize("hasAnyRole('#myController.authorizedRoles')")
public ResponseEntity<IdResponse> idPost(@RequestBody IdRequest body) {
...
}
【问题讨论】:
-
你遇到了什么错误?代码看起来不错。
-
没有错误,只是没有使用该属性。
标签: spring spring-security spring-el