0
/user/{userId}/* # Only user with userId and admin can access
/order/{orderId}/* # Only the order owner of orderId and admin can access
当前解决方案中,@Current
注释是一个定制的注射是涉及token
传递给服务器。 @PathVariable("user-id") UserEntity user
从路径得到了与Spring的数据
@PreAuthorize("#user.id == #u?.id")
public UserDTO access(@P("user") @Current UserEntity requestUser,
@P("u") @PathVariable("user-id") UserEntity user)
@PreAuthorize("#user.id == #uid && (#order == null || #order?.user?.id == #uid)")
public Message access(@Current @P("user") UserEntity user,
@PathVariable("user-id") @P("uid") Long uid,
@PathVariable("order-id") @P("order") OrderEntity order)
我们得到了太多的诠释,有没有简单的方法来配置他们呢?
试图
- 使用
.antMatchers("/user/[0-9]+/*").hasRole("ROLE_USER")
不能自定义的用户检查。 - AOP太复杂了,根本无法做到网址。
也许这只是可行的方法。 – wener
@wener这是我通常应用于我的项目的方法。也许有更好的方法来实现你想要的,但我发现这种方法非常可读和有效。 – davioooh