88 lines
3.2 KiB
Java
88 lines
3.2 KiB
Java
package com.datao.config;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.web.method.HandlerMethod;
|
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
//import javax.servlet.http.HttpServletRequest;
|
|
//import javax.servlet.http.HttpServletResponse;
|
|
import java.lang.reflect.Method;
|
|
import java.util.HashMap;
|
|
|
|
/**
|
|
* 添加拦截器
|
|
*/
|
|
//@Component
|
|
public class TokenInterceptor implements HandlerInterceptor {
|
|
|
|
@Override
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
|
|
throws Exception {
|
|
// System.out.println(String.format("[%s]", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
|
|
// +" preHandle "+request.getRequestURL());
|
|
//如果不是映射到方法直接放行
|
|
if(!(handler instanceof HandlerMethod)){
|
|
return true;
|
|
}
|
|
HandlerMethod handlerMethod = (HandlerMethod)handler;
|
|
Method method = handlerMethod.getMethod();
|
|
|
|
HashMap<String,String> hashMap = new HashMap<>();
|
|
String token = request.getHeader("Authorization");
|
|
if((token == null || token.isEmpty())
|
|
&& method.isAnnotationPresent(PassToken.class)) { //带有PassToken注解的方法不处理
|
|
return true;
|
|
}
|
|
|
|
// String msg = "";
|
|
// try {
|
|
// if(token != null && token!="") {
|
|
// TokenUtil.verifyToken(token.substring(7));
|
|
// return true;
|
|
// }
|
|
// else{
|
|
// msg = "token无效";
|
|
// }
|
|
// }catch (SignatureVerificationException e){
|
|
//// e.printStackTrace();
|
|
// msg = "签名不一致";
|
|
// }catch (TokenExpiredException e){
|
|
//// e.printStackTrace();
|
|
// msg = "令牌过期异常";
|
|
// }catch (AlgorithmMismatchException e) {
|
|
//// e.printStackTrace();
|
|
// msg = "算法不匹配异常";
|
|
// }catch (InvalidClaimException e){
|
|
//// e.printStackTrace();
|
|
// msg = "失效的claim异常";
|
|
// }catch (Exception e){
|
|
//// e.printStackTrace();
|
|
// msg = "token无效";
|
|
// }
|
|
|
|
// AjaxResult result = new AjaxResult(HttpStatus.UNAUTHORIZED.value(),msg);
|
|
//
|
|
// String resultJson = JSON.toJSONString(result);
|
|
// response.setContentType("application/json;charset=utf-8");
|
|
// response.getWriter().print(resultJson);
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
|
|
ModelAndView modelAndView) throws Exception {
|
|
// System.out.println("postHandle");
|
|
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
|
|
}
|
|
|
|
@Override
|
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
|
|
Object handler, Exception ex) throws Exception {
|
|
// System.out.println("afterCompletion");
|
|
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
|
|
}
|
|
}
|