generated from msb_55675/Demo
parent
79c9511300
commit
2e07341226
@ -0,0 +1,63 @@
|
||||
package com.mashibing.apipassenger.interceptor;
|
||||
|
||||
import com.auth0.jwt.exceptions.AlgorithmMismatchException;
|
||||
import com.auth0.jwt.exceptions.SignatureVerificationException;
|
||||
import com.auth0.jwt.exceptions.TokenExpiredException;
|
||||
import com.mashibing.common.constant.TokenConstants;
|
||||
import com.mashibing.common.dto.ResponseResult;
|
||||
import com.mashibing.common.dto.TokenResult;
|
||||
import com.mashibing.common.util.JwtUtils;
|
||||
import com.mashibing.common.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 javax.xml.transform.Result;
|
||||
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 result = true;
|
||||
String resutltString = "";
|
||||
|
||||
String token = request.getHeader("Authorization");
|
||||
// 解析token
|
||||
TokenResult tokenResult = null;
|
||||
try {
|
||||
tokenResult = JwtUtils.parseToken(token);
|
||||
}catch (Exception e){
|
||||
tokenResult = null;
|
||||
}
|
||||
|
||||
if (tokenResult == null){
|
||||
resutltString = "access token invalid";
|
||||
result = false;
|
||||
}else{
|
||||
// 拼接key
|
||||
String phone = tokenResult.getPhone();
|
||||
String identity = tokenResult.getIdentity();
|
||||
|
||||
String tokenKey = RedisPrefixUtils.generateTokenKey(phone,identity, TokenConstants.ACCESS_TOKEN_TYPE);
|
||||
// 从redis中取出token
|
||||
String tokenRedis = stringRedisTemplate.opsForValue().get(tokenKey);
|
||||
if ((StringUtils.isBlank(tokenRedis)) || (!token.trim().equals(tokenRedis.trim()))){
|
||||
resutltString = "access token invalid";
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!result){//输出到前台页面数据
|
||||
PrintWriter out = response.getWriter();
|
||||
out.print(JSONObject.fromObject(ResponseResult.fail(resutltString)).toString());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,3 +0,0 @@
|
||||
artifactId=api-passenger
|
||||
groupId=org.mashibing
|
||||
version=1.0-SNAPSHOT
|
@ -1,5 +0,0 @@
|
||||
com\mashibing\apipassenger\request\VerificationCodeDTO.class
|
||||
com\mashibing\apipassenger\ApiPassengerApplication.class
|
||||
com\mashibing\apipassenger\controller\TestController.class
|
||||
com\mashibing\apipassenger\service\VerificationCodeService.class
|
||||
com\mashibing\apipassenger\controller\VerificationCodeController.class
|
@ -1,5 +0,0 @@
|
||||
D:\Works\workspaces\online-taxi-public\api-passenger\src\main\java\com\mashibing\apipassenger\controller\VerificationCodeController.java
|
||||
D:\Works\workspaces\online-taxi-public\api-passenger\src\main\java\com\mashibing\apipassenger\request\VerificationCodeDTO.java
|
||||
D:\Works\workspaces\online-taxi-public\api-passenger\src\main\java\com\mashibing\apipassenger\service\VerificationCodeService.java
|
||||
D:\Works\workspaces\online-taxi-public\api-passenger\src\main\java\com\mashibing\apipassenger\ApiPassengerApplication.java
|
||||
D:\Works\workspaces\online-taxi-public\api-passenger\src\main\java\com\mashibing\apipassenger\controller\TestController.java
|
@ -0,0 +1,11 @@
|
||||
package com.mashibing.common.constant;
|
||||
|
||||
/**
|
||||
* token常量类
|
||||
*/
|
||||
public class TokenConstants {
|
||||
|
||||
public static final String ACCESS_TOKEN_TYPE = "accessToken";
|
||||
|
||||
public static final String REFRESH_TOKEN_TYPE = "refreshToken";
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.mashibing.common.util;
|
||||
|
||||
public class RedisPrefixUtils {
|
||||
private static String verificationCodePrefix = "verification-code-";
|
||||
private static String tokenKeyPrefix = "token-";
|
||||
|
||||
public static String generateKeyByCode(String passengerPhone){
|
||||
return verificationCodePrefix + passengerPhone;
|
||||
}
|
||||
|
||||
public static String generateTokenKey(String phone,String identity, String tokenType){
|
||||
return tokenKeyPrefix + phone + "-" + identity + "-" + tokenType;
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +1 @@
|
||||
com\mashibing\common\dto\ResponseResult.class
|
||||
com\mashibing\common\request\VerificationCodeDTO.class
|
||||
com\mashibing\common\constant\CommonStatusEnum.class
|
||||
com\mashibing\common\response\NumberCodeResponse.class
|
||||
com\mashibing\common\response\TokenResponse.class
|
||||
com\mashibing\common\util\RedisPrefixUtils.class
|
||||
|
@ -1,5 +1,9 @@
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\constant\IdentityConstant.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\constant\CommonStatusEnum.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\dto\ResponseResult.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\response\NumberCodeResponse.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\constant\TokenConstants.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\request\VerificationCodeDTO.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\response\TokenResponse.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\util\JwtUtils.java
|
||||
D:\Works\workspaces\online-taxi-public\internal-common\src\main\java\com\mashibing\common\dto\TokenResult.java
|
||||
|
Loading…
Reference in new issue