12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package com.huimv.admin.config;
- import com.alibaba.fastjson.JSONObject;
- import com.huimv.admin.common.token.TokenConstant;
- import com.huimv.admin.common.token.TokenSign;
- import io.jsonwebtoken.Claims;
- 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.util.HashMap;
- import java.util.Map;
- /**
- * <p>
- * jwt拦截器
- * </p>
- *wo
- * @since 2021/4/19
- */
- public class JWTInterceptor implements HandlerInterceptor {
- //
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- // 如果不是映射到方法,则直接通过
- if (!(handler instanceof HandlerMethod)) {
- return true;
- }
- response.setContentType("application/json;charset=utf-8");
- // 获取token
- String token = request.getHeader("accessToken");
- if (null == token) {
- Map<String, Object> map = new HashMap<>();
- map.put("data", "token is null");
- map.put("code", "401");
- response.setStatus(401);
- response.getWriter().write(JSONObject.toJSONString(map));
- return false;
- } else {
- Claims claims = TokenSign.getClaims(token);
- if (claims == null) {
- Map<String, Object> map = new HashMap<>();
- map.put("data", "token is overdue");
- map.put("code", "403");
- response.setStatus(403);
- response.getWriter().write(JSONObject.toJSONString(map));
- return false;
- }
- boolean result = TokenSign.verify(token);
- if (result) {
- //更新存储的token信息
- TokenConstant.updateTokenMap(token);
- return true;
- }
- Map<String, Object> map = new HashMap<>();
- map.put("data", "token is null");
- map.put("code", "401");
- response.setStatus(401);
- response.getWriter().write(JSONObject.toJSONString(map));
- return false;
- }
- }
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
- }
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
- }
- }
|