我的应用程序中有许多控制器,希望能够对控制器中的每个方法进行注解,以指示访问该请求所需的权限级别。
例如
@RestController
class MyController {
@Permission("MyC_R")
@RequestMapping(value = "/list", produces = "application/json" method = RequestMethod.GET)
public ResponseEntity<String> list(final HttpServletRequest req) throws UnsupportedEncodingException {
... fluff omitted for brevity
return new ResponseEntity(body, rh, hs);
}
}
我们正在使用包含用户权限的jwt令牌。我们希望能够传递这个参数 MyC_R
到 @Permission
注解-(意味着mycontroller/read),然后检查该用户在其jwt中是否具有权限。我已经有了一个类,可以提取并检查用户权限-我只需要在请求之前调用它,这样如果发生这种情况,我就可以将401 unauthorized头返回到前端。
我考虑过使用aop,但这似乎是更全面的控制器。我需要能够将此应用于每个方法/参数的特定/每个控制器。
注解会在之前得到处理吗?如果注解中的权限检查失败,是否可以在不进入方法的情况下向前端发送响应?
1条答案
按热度按时间ztmd8pv51#
你可以也应该使用aop。您完全可以将参数传递给注解以设置每个metod的权限级别。
定义接口如下:
然后定义您的实现