修复jwt的token解析异常导致错误提示,优化登录日志记录,优化刷新token接口参数
This commit is contained in:
+20
-9
@@ -186,6 +186,18 @@ public class AuthFilter extends BaseFilter implements Ordered, BootCommonConstan
|
||||
// 校验登录白名单
|
||||
if (checkLoginWhiteList(uri)) {
|
||||
filterChain.doFilter(request, response);
|
||||
// 记录登录日志
|
||||
if (Objects.equals("/sys/login/passwd", uri)) {
|
||||
LoginUserDto loginUser = AuthUtils.getDefNull();
|
||||
if (loginUser == null) {
|
||||
log.setTitle("系统登录-密码登录失败");
|
||||
} else {
|
||||
log.setAccountId(loginUser.getId());
|
||||
log.setAccount(loginUser.getAccount());
|
||||
log.setTitle("系统登录-密码登录成功");
|
||||
}
|
||||
saveOptLog(log);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -208,7 +220,8 @@ public class AuthFilter extends BaseFilter implements Ordered, BootCommonConstan
|
||||
// 校验 uri 访问权限
|
||||
String method = request.getMethod();
|
||||
if (!PremUtils.checkInterfacePerm(uri, method, loginUser.getRoleIds())) {
|
||||
saveOptLog(log, "URI访问权限校验失败");
|
||||
log.setTitle("权限异常-URI访问权限校验失败");
|
||||
saveOptLog(log);
|
||||
HttpServletUtils.respWriter(response, JSONObject.from(new Result<>(ResultType.FORBIDDEN, null)));
|
||||
return;
|
||||
}
|
||||
@@ -221,23 +234,21 @@ public class AuthFilter extends BaseFilter implements Ordered, BootCommonConstan
|
||||
checkIgnoreMask();
|
||||
CommonHolder.set(GET_SWAGGER_TAG, true);
|
||||
filterChain.doFilter(request, response);
|
||||
saveOptLog(log, null);
|
||||
saveOptLog(log);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存操作日志
|
||||
*
|
||||
* @param log 日志
|
||||
* @param memo 备注
|
||||
* @param log 日志
|
||||
*/
|
||||
private void saveOptLog(OptLogDto log, String memo) {
|
||||
Object tag = CommonHolder.get(SWAGGER_TAG);
|
||||
if (Objects.nonNull(tag)) {
|
||||
{
|
||||
private void saveOptLog(OptLogDto log) {
|
||||
if (StringUtils.isBlank(log.getTitle())) {
|
||||
Object tag = CommonHolder.get(SWAGGER_TAG);
|
||||
if (Objects.nonNull(tag)) {
|
||||
log.setTitle(tag.toString());
|
||||
}
|
||||
}
|
||||
log.setMemo(memo);
|
||||
log.setGmtCreate(Instant.now());
|
||||
LogBus.init(LogLevel.INFO, LogBusBaseType.OPT_LOG).data(log).save();
|
||||
}
|
||||
|
||||
+9
-1
@@ -5,6 +5,9 @@ import com.auth0.jwt.algorithms.Algorithm;
|
||||
import com.auth0.jwt.interfaces.JWTVerifier;
|
||||
import xtools.app.sys.auth.config.AuthConfig;
|
||||
import xtools.boot.core.utils.SpringContextUtils;
|
||||
import xtools.boot.log.LogBus;
|
||||
import xtools.boot.log.enums.LogBusBaseType;
|
||||
import xtools.core.enums.LogLevel;
|
||||
import xtools.extend.JwtUtils;
|
||||
|
||||
/**
|
||||
@@ -64,7 +67,12 @@ public class AuthJwtUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
return JwtUtils.verifyToken(verifier, token);
|
||||
try {
|
||||
return JwtUtils.verifyToken(verifier, token);
|
||||
} catch (Exception e) {
|
||||
LogBus.init(LogLevel.WARN, LogBusBaseType.OTHER).title("Token验证失败").data(JSONObject.of("token", token)).error(e).print(false).save();
|
||||
}
|
||||
return JSONObject.of();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-20
@@ -124,22 +124,6 @@ public class AuthUtils {
|
||||
return HeaderUtils.getRequestParam(request, BootCommonConstant.UID);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从Jwt 中获取 token
|
||||
*
|
||||
* @param jwt Jwt信息
|
||||
* @param uid Uid
|
||||
* @param id Id
|
||||
* @return token
|
||||
*/
|
||||
public static String getTokenByJwt(String jwt, String uid, Long id) {
|
||||
JSONObject jwtToken = AuthJwtUtils.verifyToken(jwt);
|
||||
if (checkJwtToken(jwtToken, uid, id)) {
|
||||
return jwtToken.getString(JWT_TOKEN);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证 JwtToken
|
||||
*
|
||||
@@ -152,10 +136,7 @@ public class AuthUtils {
|
||||
if (!Objects.equals(jwtToken.getString(UID), uid)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(jwtToken.getLong(USER), id)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return Objects.equals(jwtToken.getLong(USER), id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user