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\util\RedisPrefixUtils.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
|
|
||||||
|
@ -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\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\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\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\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\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