|
@@ -4,6 +4,7 @@ import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import com.onemap.common.core.constant.CacheConstants;
|
|
@@ -19,12 +20,11 @@ import com.onemap.system.api.model.LoginUser;
|
|
|
|
|
|
/**
|
|
|
* token验证处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author onemap
|
|
|
*/
|
|
|
@Component
|
|
|
-public class TokenService
|
|
|
-{
|
|
|
+public class TokenService {
|
|
|
@Autowired
|
|
|
private RedisService redisService;
|
|
|
|
|
@@ -41,8 +41,7 @@ public class TokenService
|
|
|
/**
|
|
|
* 创建令牌
|
|
|
*/
|
|
|
- public Map<String, Object> createToken(LoginUser loginUser)
|
|
|
- {
|
|
|
+ public Map<String, Object> createToken(LoginUser loginUser) {
|
|
|
String token = IdUtils.fastUUID();
|
|
|
Long userId = loginUser.getSysUser().getUserId();
|
|
|
String userName = loginUser.getSysUser().getUserName();
|
|
@@ -70,8 +69,7 @@ public class TokenService
|
|
|
*
|
|
|
* @return 用户信息
|
|
|
*/
|
|
|
- public LoginUser getLoginUser()
|
|
|
- {
|
|
|
+ public LoginUser getLoginUser() {
|
|
|
return getLoginUser(ServletUtils.getRequest());
|
|
|
}
|
|
|
|
|
@@ -80,8 +78,7 @@ public class TokenService
|
|
|
*
|
|
|
* @return 用户信息
|
|
|
*/
|
|
|
- public LoginUser getLoginUser(HttpServletRequest request)
|
|
|
- {
|
|
|
+ public LoginUser getLoginUser(HttpServletRequest request) {
|
|
|
// 获取请求携带的令牌
|
|
|
String token = SecurityUtils.getToken(request);
|
|
|
return getLoginUser(token);
|
|
@@ -92,20 +89,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 = redisService.getCacheObject(getTokenKey(userkey));
|
|
|
return user;
|
|
|
}
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
+ } catch (Exception e) {
|
|
|
}
|
|
|
return user;
|
|
|
}
|
|
@@ -113,10 +105,8 @@ public class TokenService
|
|
|
/**
|
|
|
* 设置用户身份信息
|
|
|
*/
|
|
|
- public void setLoginUser(LoginUser loginUser)
|
|
|
- {
|
|
|
- if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken()))
|
|
|
- {
|
|
|
+ public void setLoginUser(LoginUser loginUser) {
|
|
|
+ if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) {
|
|
|
refreshToken(loginUser);
|
|
|
}
|
|
|
}
|
|
@@ -124,10 +114,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.deleteObject(getTokenKey(userkey));
|
|
|
}
|
|
@@ -138,12 +126,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);
|
|
|
}
|
|
|
}
|
|
@@ -153,17 +139,17 @@ 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缓存
|
|
|
String userKey = getTokenKey(loginUser.getToken());
|
|
|
- redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
|
+ // redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
|
|
|
+ // 设置永不过期
|
|
|
+ redisService.setCacheObject(userKey, loginUser);
|
|
|
}
|
|
|
|
|
|
- private String getTokenKey(String token)
|
|
|
- {
|
|
|
+ private String getTokenKey(String token) {
|
|
|
return ACCESS_TOKEN + token;
|
|
|
}
|
|
|
}
|