parent
fd788ecf6d
commit
d1785b5dbb
@ -0,0 +1,53 @@
|
|||||||
|
package com.taxi.apidriver.interceptor;
|
||||||
|
|
||||||
|
import com.internal.contant.TokenConstant;
|
||||||
|
import com.internal.dto.ResponseResult;
|
||||||
|
import com.internal.dto.TokenResult;
|
||||||
|
import com.internal.util.JwtUtils;
|
||||||
|
import com.internal.util.RedisPrefixUtils;
|
||||||
|
import net.sf.json.JSONObject;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
|
public class JwtInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
boolean resultBoolean = true;
|
||||||
|
String resultStr = "";
|
||||||
|
String token = request.getHeader("Authorization");
|
||||||
|
//解析token
|
||||||
|
TokenResult tokenResult = JwtUtils.checkToken(token);
|
||||||
|
if(tokenResult == null){
|
||||||
|
resultStr = "token invalid ";
|
||||||
|
resultBoolean = false;
|
||||||
|
}else{
|
||||||
|
//拼接tokenKey
|
||||||
|
String phone = tokenResult.getPassengerPhone();
|
||||||
|
String identity = tokenResult.getIdentity();
|
||||||
|
String tokenKey = RedisPrefixUtils.getTokenPrefixKey(phone,identity, TokenConstant.ACCESS_TOKEN_TYPE);
|
||||||
|
//从redis中取出token
|
||||||
|
String redisToke = stringRedisTemplate.opsForValue().get(tokenKey);
|
||||||
|
if(StringUtils.isBlank(redisToke) || (!token.trim().equals(redisToke.trim()))){
|
||||||
|
resultStr = "token invalid ";
|
||||||
|
resultBoolean = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
if(!resultBoolean){
|
||||||
|
PrintWriter outPrintWriter = response.getWriter();
|
||||||
|
JSONObject jsonObject = JSONObject.fromObject(ResponseResult.fail(resultStr));
|
||||||
|
outPrintWriter.print(jsonObject.toString());
|
||||||
|
}
|
||||||
|
return resultBoolean;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue