请求时获取token并验证
public class MyInterceptor implements HandlerInterceptor { //方法执行前进行拦截 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //从请求头部中中获取到token String token = request.getHeader("token"); //如果token为null if (token==null){ //返回用户未登录 response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().write("未登录!"); return false; } //如果token不为null值,但是有可能token是错误的所以需要 使用jwtutils进行token的认证 Boolean aBoolean = JWTUtils.verifyToken(token); if (!aBoolean){ //用户token解密失败!则返回前端 用户登录异常 response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().write("登录异常!"); return false; } //如果没有问题,则继续放行该请求 说明用户已经登录 return true; } }
拦截器
@Configuration public class MyWebConfig implements WebMvcConfigurer { //添加拦截器,配置哪些请求需要经过拦截,哪些请求直接放行 @Override public void addInterceptors(InterceptorRegistry registry) { // 将自定义拦截器注册到webmvc中,同时设置哪些氢气进行拦截 哪些请求进行放行 registry.addInterceptor(new MyInterceptor()) .addPathPatterns("/**")//拦截的 .excludePathPatterns("/verify/**")//放行的 .excludePathPatterns("/edition/**");//放行的 } }
标签:拦截器,java,请求,public,token,放行,response From: https://www.cnblogs.com/xbinbin/p/17156278.html