1.控制类:

    /*** 根据id删除*/@RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE,name = "API-USER-DELETE")public Result delete(@PathVariable(value = "id") String id) {userService.deleteById(id);return new Result(ResultCode.SUCCESS);}

 2.拦截器获取控制类requestMapping注解中的name属性值:

package com.ihrm.common.interceptor;import com.ihrm.common.entity.ResultCode;
import com.ihrm.common.exception.CommonException;
import com.ihrm.common.utils.JwtUtils;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 自定义拦截器*      继承HandlerInterceptorAdapter**      preHandle:进入到控制器方法之前执行的内容*          boolean:*              true:可以继续执行控制器方法*              false:拦截*      posthandler:执行控制器方法之后执行的内容*      afterCompletion:响应结束之前执行的内容** 1.简化获取token数据的代码编写*      统一的用户权限校验(是否登录)* 2.判断用户是否具有当前访问接口的权限**/
@Component
public class JwtInterceptor extends HandlerInterceptorAdapter {/*** 简化获取token数据的代码编写(判断是否登录)*  1.通过request获取请求token信息*  2.从token中解析获取claims*  3.将claims绑定到request域中*/@Autowiredprivate JwtUtils jwtUtils;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 1.通过request获取请求token信息String authorization = request.getHeader("Authorization");//判断请求头信息是否为空,或者是否已Bearer开头if(!StringUtils.isEmpty(authorization) && authorization.startsWith("Bearer")) {//获取token数据String token = authorization.replace("Bearer ","");//解析token获取claimsClaims claims = jwtUtils.parseJwt(token);if(claims != null) {//通过claims获取到当前用户的可访问API权限字符串String apis = (String) claims.get("apis");  //api-user-delete,api-user-update//通过handlerHandlerMethod h = (HandlerMethod) handler;//获取接口上的reqeustmapping注解RequestMapping annotation = h.getMethodAnnotation(RequestMapping.class);//获取当前请求接口中的name属性String name = annotation.name();//判断当前用户是否具有响应的请求权限if(apis.contains(name)) {request.setAttribute("user_claims",claims);return true;}else {throw new CommonException(ResultCode.UNAUTHORISE);}}}throw new CommonException(ResultCode.UNAUTHENTICATED);}
}

通过拦截器获取控制类requestMapping注解中的属性值相关推荐

  1. 如何使用拦截器获取Controller方法名和注解信息?

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:https://blog.csdn.net/howroad/article/details/80220320 在使用Spr ...

  2. Java微信公众号开发之使用拦截器获取粉丝openID

    目的 本次实现的目的是:在微信公众号项目中,可能在每次访问页面的时候需要带上openid或者授权,查数据库太耗性能.多次多个地方去调授权接口也不是最佳的方案,如果能利用拦截器拦截到每次请求访问后台,这 ...

  3. 拦截器获取请求参数post_SpringBoot拦截器如何获取http请求参数

    1.1.获取http请求参数是一种刚需 我想有的小伙伴肯定有过获取http请求的需要,比如想 前置获取参数,统计请求数据 做服务的接口签名校验 敏感接口监控日志 敏感接口防重复提交 等等各式各样的场景 ...

  4. 深入理解java注解,java的4个元注解,注解三要素——定义、使用及读取执行,深入了解注解的底层本质,通过反射自动、动态获取注解所有属性以及属性值

    1. 注解的定义 注解也是一种引用类型,编译后会生成 .class 字节码文件,作用就是为程序进行标识,不同注解能实现不同功能. 2. 注解的使用 3. 注解的读取执行 3.1 得不到注解信息,得到的 ...

  5. java 验证int长度_java使用注解校验对象属性值数据长度

    java使用注解校验对象属性值数据长度 定义注解 import java.lang.annotation.*; /** * describe:定义注解 * current user Maochao.z ...

  6. 在jsp中调用常量类中的属性值

    在jsp中想要调用常量类中的属性值方法: 1.  在jsp中导入此常量类   <%@page import="com.Zyp.constant.FlagConstant"%& ...

  7. SpringMVC js如何获取后台model中的属性值

    SpringMVC js如何获取后台model中的属性值 companylist 如何获取 var companylist="${companylist}"; 希望对你有所帮助 个 ...

  8. ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性...

    ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性 <%@ Page Language="C#" Auto ...

  9. js获得html下拉框的值,JavaScript如何获取select下拉框中第一个值

    本文主要和大家介绍JavaScript实现获取select下拉框中第一个值的方法,涉及javascript针对页面元素属性的相关获取操作技巧,需要的朋友可以参考下,希望能帮助到大家. 1.说明 获取s ...

最新文章

  1. 秒杀系统怎么设计?8张图带你搞定!
  2. python 文字转语音
  3. python可以做什么系统-python能做哪方面的工作
  4. php大号字体代码,支持中文字母数字、自定义字体php验证码代码
  5. 传阿里旗下蚂蚁集团拟上市集资300亿美元,最快9月IPO
  6. 计算机函授本科题库,计算机应用基础函授本科考试题库
  7. 深入理解InnoDB(5)-文件系统
  8. 一次关于使用status作为变量引发的bug及思考
  9. java 加载spring_spring的加载机制?
  10. java中文输出乱码_java汉字乱码解决办法
  11. chrome frame解决IE9一下不兼容问题
  12. Spring实战系列
  13. kindle买书建议
  14. 使用腾讯云轻量应用服务器搭建网站教程(也太简单了)
  15. java后端getmonth_Java中的LocalDateTime getMonth()方法
  16. 探索无止境,解决问题才是根本
  17. JMF介绍之媒体框架
  18. Ubuntu 18.04 LTS系统主题美化
  19. HTML5+CSS3的学习(一)
  20. UESTC -- 1061 秋实大哥与战争(暴力/set)

热门文章

  1. 设计模式总结之结构型模式
  2. [论文收集] ICWS 2008论文
  3. 167. Two Sum II - Input array is sorted两数之和
  4. python基础(十):异常和断言
  5. 【codevs1170】 双栈排序
  6. 【CodeVS】p1174 靶形数独
  7. 在弹窗中新建一个遮罩层
  8. Redis 安装部署介绍
  9. 编写可靠Linux shell脚本的建议
  10. 网络故障处理手册大全