|
@@ -17,17 +17,15 @@ import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
* token验证处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author ruoyi
|
|
|
*/
|
|
|
@Component
|
|
|
-public class TokenService
|
|
|
-{
|
|
|
+public class TokenService {
|
|
|
|
|
|
private RedisHelper redisService = SpringContextUtils.getBean(RedisHelper.class);
|
|
|
|
|
|
|
|
|
-
|
|
|
protected static final long MILLIS_SECOND = 1000;
|
|
|
|
|
|
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
|
|
@@ -41,8 +39,7 @@ public class TokenService
|
|
|
/**
|
|
|
* 创建令牌
|
|
|
*/
|
|
|
- public Map<String, Object> createToken(LoginUser loginUser)
|
|
|
- {
|
|
|
+ public Map<String, Object> createToken(LoginUser loginUser) {
|
|
|
String token = UUIDUtils.uuid();
|
|
|
Long userId = loginUser.getSysUser().getUserId();
|
|
|
String userName = loginUser.getSysUser().getUserName();
|
|
@@ -59,13 +56,12 @@ public class TokenService
|
|
|
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
|
|
|
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
|
|
|
claimsMap.put(SecurityConstants.DETAILS_TENANT_ID, tenantId);
|
|
|
- claimsMap.put(SecurityConstants.SYS_PERSON, loginUser.getSysPerson());
|
|
|
|
|
|
// 接口返回信息
|
|
|
Map<String, Object> rspMap = new HashMap<String, Object>();
|
|
|
rspMap.put("access_token", JwtUtils.createToken(claimsMap));
|
|
|
rspMap.put("expires_in", expireTime);
|
|
|
- rspMap.put("tenantId",tenantId);
|
|
|
+ rspMap.put("tenantId", tenantId);
|
|
|
return rspMap;
|
|
|
}
|
|
|
|
|
@@ -74,8 +70,7 @@ public class TokenService
|
|
|
*
|
|
|
* @return 用户信息
|
|
|
*/
|
|
|
- public LoginUser getLoginUser()
|
|
|
- {
|
|
|
+ public LoginUser getLoginUser() {
|
|
|
return getLoginUser(ServletUtils.getRequest());
|
|
|
}
|
|
|
|
|
@@ -84,8 +79,7 @@ public class TokenService
|
|
|
*
|
|
|
* @return 用户信息
|
|
|
*/
|
|
|
- public LoginUser getLoginUser(HttpServletRequest request)
|
|
|
- {
|
|
|
+ public LoginUser getLoginUser(HttpServletRequest request) {
|
|
|
// 获取请求携带的令牌
|
|
|
String token = SecurityUtils.getToken(request);
|
|
|
return getLoginUser(token);
|
|
@@ -96,20 +90,15 @@ public class TokenService
|
|
|
*
|
|
|
* @return 用户信息
|
|
|
*/
|
|
|
- public LoginUser getLoginUser(String token)
|
|
|
- {
|
|
|
+ public LoginUser getLoginUser(String token) {
|
|
|
LoginUser user = null;
|
|
|
- try
|
|
|
- {
|
|
|
- if (StringUtils.isNotEmpty(token))
|
|
|
- {
|
|
|
+ try {
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
String userkey = JwtUtils.getUserKey(token);
|
|
|
- user = (LoginUser)redisService.get(getTokenKey(userkey));
|
|
|
+ user = (LoginUser) redisService.get(getTokenKey(userkey));
|
|
|
return user;
|
|
|
}
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
+ } catch (Exception e) {
|
|
|
}
|
|
|
return user;
|
|
|
}
|
|
@@ -117,10 +106,8 @@ public class TokenService
|
|
|
/**
|
|
|
* 设置用户身份信息
|
|
|
*/
|
|
|
- public void setLoginUser(LoginUser loginUser)
|
|
|
- {
|
|
|
- if (Objects.nonNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken()))
|
|
|
- {
|
|
|
+ public void setLoginUser(LoginUser loginUser) {
|
|
|
+ if (Objects.nonNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) {
|
|
|
refreshToken(loginUser);
|
|
|
}
|
|
|
}
|
|
@@ -128,10 +115,8 @@ public class TokenService
|
|
|
/**
|
|
|
* 删除用户缓存信息
|
|
|
*/
|
|
|
- public void delLoginUser(String token)
|
|
|
- {
|
|
|
- if (StringUtils.isNotEmpty(token))
|
|
|
- {
|
|
|
+ public void delLoginUser(String token) {
|
|
|
+ if (StringUtils.isNotEmpty(token)) {
|
|
|
String userkey = JwtUtils.getUserKey(token);
|
|
|
redisService.delete(getTokenKey(userkey));
|
|
|
}
|
|
@@ -142,12 +127,10 @@ public class TokenService
|
|
|
*
|
|
|
* @param loginUser
|
|
|
*/
|
|
|
- public void verifyToken(LoginUser loginUser)
|
|
|
- {
|
|
|
+ public void verifyToken(LoginUser loginUser) {
|
|
|
long expireTime = loginUser.getExpireTime();
|
|
|
long currentTime = System.currentTimeMillis();
|
|
|
- if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
|
|
|
- {
|
|
|
+ if (expireTime - currentTime <= MILLIS_MINUTE_TEN) {
|
|
|
refreshToken(loginUser);
|
|
|
}
|
|
|
}
|
|
@@ -157,8 +140,7 @@ public class TokenService
|
|
|
*
|
|
|
* @param loginUser 登录信息
|
|
|
*/
|
|
|
- public void refreshToken(LoginUser loginUser)
|
|
|
- {
|
|
|
+ public void refreshToken(LoginUser loginUser) {
|
|
|
loginUser.setLoginTime(System.currentTimeMillis());
|
|
|
loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
|
|
|
// 根据uuid将loginUser缓存
|
|
@@ -166,8 +148,7 @@ public class TokenService
|
|
|
redisService.set(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
|
}
|
|
|
|
|
|
- private String getTokenKey(String token)
|
|
|
- {
|
|
|
+ private String getTokenKey(String token) {
|
|
|
return ACCESS_TOKEN + token;
|
|
|
}
|
|
|
}
|