jwt拦截器的编写

main
topsun 2 years ago
parent 95e21dee5e
commit 5c8601ca38

@ -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;
}
}

@ -43,7 +43,7 @@ public class JwtUtils {
return sign; return sign;
} }
public static void main(String[] args) { public static void main(String[] args) throws Exception{
// Map<String, String> map = new HashMap<>(); // Map<String, String> map = new HashMap<>();
// map.put("name", "zhang san"); // map.put("name", "zhang san");
// map.put("age", "19"); // map.put("age", "19");
@ -55,7 +55,7 @@ public class JwtUtils {
//解析Token //解析Token
public static TokenResult parseToken(String token) { public static TokenResult parseToken(String token) throws Exception {
DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN)) DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN))
.build().verify(token); .build().verify(token);
Claim claimPhone = decodedJWT.getClaim(JWT_KEY_PHONE); Claim claimPhone = decodedJWT.getClaim(JWT_KEY_PHONE);

Loading…
Cancel
Save