在业务逻辑中,不同的角色拥有各自的职责,由于职责不同,所负责的功能也不一样,就拥有了不同的权限等级。
而权限验证通常以拦截请求来实现,但不可能在每个Controller方法中都编写一段权限验证的代码,于是使用自定义注解就成了很好的解决方式。
示例
假设有一个业务场景,需要判断用户所属的角色是否和要求角色匹配,那么可能需要进行如下操作:
@RequestMapping(value = "/addItem",method = RequestMethod.POST)
public Response addItemByAdmin(HttpServletRequest request,@RequestBody Map<String,Object> jsonObj){
// 获取用户令牌
String token = request.getHeader("Token");
// 获取用户信息
User user = userService.findUser(token);
// 判断角色是否为管理员
if(user.getRole()!=Role.ADMIN){
//