如何使用SpEL从Spring Security @PreAuthorize的方法参数解析UUID?

时间:2018-01-24 12:50:19

标签: spring-mvc spring-security spring-el

我有一个带有Spring @PreAuthorize注释的控制器:

@PreAuthorize("hasRole('ROLE_USER') and #id == authentication.name")
public ResponseEntity<UserProfileDTO> updateProfile(@PathVariable(name = "id") final UUID id) {
//service call
}

但问题是,该主体是String,等于返回false。 我如何调用java.util.UUID.fromString(authentication.name)?

1 个答案:

答案 0 :(得分:1)

这是解决方案:

    @PreAuthorize("hasRole('ROLE_USER') and #id == T(java.util.UUID).fromString(authentication.name)")