
在任何
@Controller,
@RestController注解豆你可以使用
Principal直接作为方法的参数。
@RequestMapping("/users/{user_id}") public String getUserInfo(@PathVariable("user_id") Long userId, Principal principal){ // test if userId is current principal or principal is an ADMIN .... }如果您不想在中进行安全检查,则
Controller可以使用 Spring EL
表达式。您可能已经使用了一些内置表达式,例如
hasRole([role])。
您可以编写自己的表达式。
创建一个
bean
public class UserSecurity { public boolean hasUserId(Authentication authentication, Long userId) { // do your check(s) here }}用你的表情
http .authorizeRequests() .antMatchers("/user/{userId}/**") .access("@userSecurity.hasUserId(authentication,#userId)") ...
令人高兴的是,您还可以组合以下表达式:
hasRole('admin') or @userSecurity.hasUserId(authentication,#userId)欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)