|
@@ -2,9 +2,12 @@ package com.zhongzheng.framework.web.service;
|
|
|
|
|
|
|
|
import cn.hutool.core.lang.Validator;
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
+import cn.hutool.http.HttpStatus;
|
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.zhongzheng.common.constant.Constants;
|
|
import com.zhongzheng.common.constant.Constants;
|
|
|
|
|
+import com.zhongzheng.common.core.domain.AjaxResult;
|
|
|
import com.zhongzheng.common.core.domain.model.LoginUser;
|
|
import com.zhongzheng.common.core.domain.model.LoginUser;
|
|
|
import com.zhongzheng.common.core.redis.RedisCache;
|
|
import com.zhongzheng.common.core.redis.RedisCache;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
@@ -16,10 +19,12 @@ import com.zhongzheng.common.utils.ip.IpUtils;
|
|
|
import com.zhongzheng.framework.manager.AsyncManager;
|
|
import com.zhongzheng.framework.manager.AsyncManager;
|
|
|
import com.zhongzheng.framework.manager.factory.AsyncFactory;
|
|
import com.zhongzheng.framework.manager.factory.AsyncFactory;
|
|
|
import io.jsonwebtoken.Claims;
|
|
import io.jsonwebtoken.Claims;
|
|
|
|
|
+import io.jsonwebtoken.ExpiredJwtException;
|
|
|
import io.jsonwebtoken.Jwts;
|
|
import io.jsonwebtoken.Jwts;
|
|
|
import io.jsonwebtoken.SignatureAlgorithm;
|
|
import io.jsonwebtoken.SignatureAlgorithm;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
+import org.springframework.security.access.AccessDeniedException;
|
|
|
import org.springframework.security.authentication.AuthenticationManager;
|
|
import org.springframework.security.authentication.AuthenticationManager;
|
|
|
import org.springframework.security.authentication.BadCredentialsException;
|
|
import org.springframework.security.authentication.BadCredentialsException;
|
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
|
@@ -28,6 +33,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -69,8 +75,7 @@ public class TokenService
|
|
|
*
|
|
*
|
|
|
* @return 用户信息
|
|
* @return 用户信息
|
|
|
*/
|
|
*/
|
|
|
- public LoginUser getLoginUser(HttpServletRequest request)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ public LoginUser getLoginUser(HttpServletRequest request) {
|
|
|
//测试用户
|
|
//测试用户
|
|
|
String test_token = request.getHeader("X-Auth-Token");
|
|
String test_token = request.getHeader("X-Auth-Token");
|
|
|
if("test".equals(test_token)){
|
|
if("test".equals(test_token)){
|
|
@@ -80,17 +85,12 @@ public class TokenService
|
|
|
String token = getToken(request);
|
|
String token = getToken(request);
|
|
|
if (Validator.isNotEmpty(token))
|
|
if (Validator.isNotEmpty(token))
|
|
|
{
|
|
{
|
|
|
|
|
+ String uuid = "";
|
|
|
Claims claims = parseToken(token);
|
|
Claims claims = parseToken(token);
|
|
|
// 解析对应的权限以及用户信息
|
|
// 解析对应的权限以及用户信息
|
|
|
- String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
|
|
|
|
|
|
|
+ uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
|
|
|
String userKey = getTokenKey(uuid);
|
|
String userKey = getTokenKey(uuid);
|
|
|
LoginUser user = redisCache.getCacheObject(userKey);
|
|
LoginUser user = redisCache.getCacheObject(userKey);
|
|
|
- if(Validator.isEmpty(user)){
|
|
|
|
|
- throw new UserPasswordNotMatchException();
|
|
|
|
|
- }
|
|
|
|
|
- if(user==null){
|
|
|
|
|
- throw new UserPasswordNotMatchException();
|
|
|
|
|
- }
|
|
|
|
|
return user;
|
|
return user;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -231,10 +231,12 @@ public class TokenService
|
|
|
*/
|
|
*/
|
|
|
private Claims parseToken(String token)
|
|
private Claims parseToken(String token)
|
|
|
{
|
|
{
|
|
|
- return Jwts.parser()
|
|
|
|
|
- .setSigningKey(secret)
|
|
|
|
|
- .parseClaimsJws(token)
|
|
|
|
|
|
|
+ Claims claims;
|
|
|
|
|
+ claims = Jwts.parser()
|
|
|
|
|
+ .setSigningKey(secret) // 设置标识名
|
|
|
|
|
+ .parseClaimsJws(token) //解析token
|
|
|
.getBody();
|
|
.getBody();
|
|
|
|
|
+ return claims;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|