|
@@ -35,6 +35,37 @@ public class TokenUtils {
|
|
/**
|
|
/**
|
|
* 验证Token
|
|
* 验证Token
|
|
*/
|
|
*/
|
|
|
|
+ public static boolean verifyToken(String token, ISysBaseApi sysBaseAPI, RedisUtil redisUtil) {
|
|
|
|
+ if (StringUtils.isBlank(token)) {
|
|
|
|
+ throw new AuthenticationException("token不能为空!");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 解密获得username,用于和数据库进行对比
|
|
|
|
+ String username = JwtUtil.getUsername(token);
|
|
|
|
+ if (username == null) {
|
|
|
|
+ throw new AuthenticationException("token非法无效!");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 查询用户信息
|
|
|
|
+ LoginUser user = sysBaseAPI.getUserByName(username);
|
|
|
|
+ if (user == null) {
|
|
|
|
+ throw new AuthenticationException("用户不存在!");
|
|
|
|
+ }
|
|
|
|
+ // 判断用户状态
|
|
|
|
+ if (user.getStatus() != 1) {
|
|
|
|
+ throw new AuthenticationException("账号已被锁定,请联系管理员!");
|
|
|
|
+ }
|
|
|
|
+ // 校验token是否超时失效 & 或者账号密码是否错误
|
|
|
|
+ if (!jwtTokenRefresh(token, username, user.getPassword(), redisUtil)) {
|
|
|
|
+ throw new AuthenticationException("Token失效,请重新登录!");
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 验证Token
|
|
|
|
+ */
|
|
public static boolean verifyToken(HttpServletRequest request, ISysBaseApi sysBaseAPI, RedisUtil redisUtil) {
|
|
public static boolean verifyToken(HttpServletRequest request, ISysBaseApi sysBaseAPI, RedisUtil redisUtil) {
|
|
log.info(" -- url --" + request.getRequestURL());
|
|
log.info(" -- url --" + request.getRequestURL());
|
|
String token = getTokenByRequest(request);
|
|
String token = getTokenByRequest(request);
|