diff --git a/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java new file mode 100644 index 0000000..3c2e29a --- /dev/null +++ b/online-taxi-public/api-passenger/src/main/java/com/taxi/apipassenger/interceptor/JwtInterceptor.java @@ -0,0 +1,45 @@ +package com.taxi.apipassenger.interceptor; + +import com.auth0.jwt.exceptions.TokenExpiredException; +import com.internal.dto.ResponseResult; +import com.internal.util.JwtUtils; +import net.sf.json.JSONObject; +import org.springframework.lang.Nullable; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import java.security.SignatureException; + +public class JwtInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + boolean resultBoolean = true; + String resultStr = ""; + String token = request.getHeader("Authorization"); + + try { + //解析token + JwtUtils.parseToken(token); + + } catch (SignatureException exception) { + resultStr = "token sign error "; + resultBoolean = false; + }catch (TokenExpiredException ex){ + resultStr = "token time out"; + resultBoolean = false; + }catch (Exception exception){ + resultBoolean = false; + } + if(!resultBoolean){ + PrintWriter outPrintWriter = response.getWriter(); + JSONObject jsonObject = JSONObject.fromObject(ResponseResult.fail(resultStr)); + outPrintWriter.print(jsonObject.toString()); + } + + return resultBoolean; + } +} diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java index 231e8fe..3e911a6 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java @@ -43,7 +43,7 @@ public class JwtUtils { return sign; } - public static void main(String[] args) { + public static void main(String[] args) throws Exception{ // Map map = new HashMap<>(); // map.put("name", "zhang san"); // map.put("age", "19"); @@ -55,7 +55,7 @@ public class JwtUtils { //解析Token - public static TokenResult parseToken(String token) { + public static TokenResult parseToken(String token) throws Exception { DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN)) .build().verify(token); Claim claimPhone = decodedJWT.getClaim(JWT_KEY_PHONE);