|
@@ -31,6 +31,9 @@ import java.io.IOException;
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
|
public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|
public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|
|
|
|
|
|
|
|
|
+ // 需要排除Token续期的接口路径
|
|
|
|
|
+ private static final String EXCLUDED_API_PATH = "/admin-api/system/notify-message/get-unread-count";
|
|
|
|
|
+
|
|
|
private final SecurityProperties securityProperties;
|
|
private final SecurityProperties securityProperties;
|
|
|
|
|
|
|
|
private final GlobalExceptionHandler globalExceptionHandler;
|
|
private final GlobalExceptionHandler globalExceptionHandler;
|
|
@@ -52,7 +55,8 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|
|
if (loginUser == null) {
|
|
if (loginUser == null) {
|
|
|
loginUser = mockLoginUser(request, token, userType);
|
|
loginUser = mockLoginUser(request, token, userType);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ // 延长双 token 过期时间 延长 30分钟
|
|
|
|
|
+ renewTokenExpireTime(token);
|
|
|
// 2. 设置当前用户
|
|
// 2. 设置当前用户
|
|
|
if (loginUser != null) {
|
|
if (loginUser != null) {
|
|
|
SecurityFrameworkUtils.setLoginUser(loginUser, request);
|
|
SecurityFrameworkUtils.setLoginUser(loginUser, request);
|
|
@@ -68,6 +72,16 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
|
|
|
chain.doFilter(request, response);
|
|
chain.doFilter(request, response);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 延长 accessToken refreshToken 过期时间
|
|
|
|
|
+ * 只要在操作系统功能 token 就不会过期
|
|
|
|
|
+ * @param accessToken
|
|
|
|
|
+ */
|
|
|
|
|
+ private void renewTokenExpireTime(String accessToken) {
|
|
|
|
|
+ // 对当前token进行续期 延期
|
|
|
|
|
+ oauth2TokenApi.renewTokenExpireTime(accessToken);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private LoginUser buildLoginUserByToken(String token, Integer userType) {
|
|
private LoginUser buildLoginUserByToken(String token, Integer userType) {
|
|
|
try {
|
|
try {
|
|
|
OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token);
|
|
OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token);
|