Browse Source

验证解决无效token id问题

qzyReal 1 year ago
parent
commit
789efd25b5

+ 1 - 1
app.pid

@@ -1 +1 @@
-16328
+26980

+ 2 - 0
sp-core/sp-base/src/main/java/com/pj/current/satoken/SaTokenConfigure.java

@@ -1,5 +1,6 @@
 package com.pj.current.satoken;
 
+import cn.hutool.log.StaticLog;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
@@ -40,6 +41,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
         		.setAuth(obj -> {
         			// 校验 Id-Token 身份凭证     —— 以下两句代码可简化为:SaIdUtil.checkCurrentRequestToken(); 
                     String token = SaHolder.getRequest().getHeader(SaIdUtil.ID_TOKEN);
+					StaticLog.info("=======filter===token=======:{}",token);
                     SaIdUtil.checkToken(token);
         		})
         		

+ 0 - 2
sp-core/sp-base/src/main/java/com/pj/current/satoken/StpInterfaceImpl.java

@@ -24,8 +24,6 @@ public class StpInterfaceImpl implements StpInterface {
 	@Override
 	public List<String> getPermissionList(Object loginId, String loginType) {
 		if(loginType.equals(StpUtil.TYPE)) {
-//			long roleId = spAdminMapper.getById(Long.valueOf(loginId.toString())).getRoleId();
-//			return spRolePermissionService.getPcodeByRid(roleId);
 			return StpUserUtil.getPermissionList();
 		}
 		return null;

+ 3 - 12
sp-core/sp-base/src/main/java/com/pj/current/satoken/StpUserUtil.java

@@ -24,24 +24,15 @@ import cn.dev33.satoken.stp.StpUtil;
  * @author kong
  */
 @Component
-public class StpUserUtil {
+public class StpUserUtil extends StpUtil{
 
-    /**
-     * 账号类型标识
-     */
-    public static final String TYPE = "user";
-
-    /**
-     * 底层的 StpLogic 对象
-     */
-    public static StpLogic stpLogic = new StpLogic(TYPE);
 
     /**
      * 缓存登录用户信息
      * @param info
      */
     public static void cachePcLoginInfo(PCLoginUserInfo info){
-       String loginId= StpUtil.getLoginIdAsString();
+       String loginId= stpLogic.getLoginIdAsString();
        RedisUtil.set("pc:"+loginId,JSONUtil.toJsonStr(info));
     }
 
@@ -50,7 +41,7 @@ public class StpUserUtil {
      * @return
      */
     public static PCLoginUserInfo getPCLoginInfo(){
-        String key="pc:"+getLoginIdAsString();
+        String key="pc:"+stpLogic.getLoginIdAsString();
         String info=RedisUtil.get(key);
         return StrUtil.isEmpty(info)?new PCLoginUserInfo():JSONUtil.toBean(info,PCLoginUserInfo.class);
     }

+ 3 - 1
sp-native/sp-gateway/src/main/java/com/pj/more/SaIdTokenFilter.java

@@ -20,11 +20,13 @@ public class SaIdTokenFilter implements GlobalFilter {
 	
     @Override
     public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+        String token=SaIdUtil.getToken();
+        System.out.println(token+"---------header-----");
         ServerHttpRequest newRequest = exchange
                 .getRequest()
                 .mutate()
                 // 为请求追加 Id-Token 参数 
-                .header(SaIdUtil.ID_TOKEN, SaIdUtil.getToken())
+                .header(SaIdUtil.ID_TOKEN,token)
                 .build();
         ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();
         return chain.filter(newExchange);

+ 2 - 2
sp-service/sp-admin/src/main/java/com/pj/project4sp/admin4login/SpAccAdminService.java

@@ -93,13 +93,13 @@ public class SpAccAdminService {
 
         // =========== 至此, 已登录成功 ============
         successLogin(admin);
-        StpUtil.login(admin.getId());
+        StpUserUtil.login(admin.getId());
         // 组织返回参数
         SoMap map = new SoMap();
         map.put("admin", admin);
         List<String> per_list = spRolePermissionService.getPcodeByRid2(admin.getRoleId());
         map.put("per_list", per_list);
-        map.put("tokenInfo", StpUtil.getTokenInfo());
+        map.put("tokenInfo", StpUserUtil.getTokenInfo());
         StpUserUtil.cachePerList(per_list);
         // 记录登录信息至redis
         PCLoginUserInfo info = new PCLoginUserInfo();

+ 2 - 1
sp-service/sp-task/src/main/java/com/pj/SpTaskApplication.java

@@ -1,5 +1,6 @@
 package com.pj;
 
+import cn.dev33.satoken.id.SaIdUtil;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
@@ -23,7 +24,7 @@ public class SpTaskApplication {
 	public static void main(String[] args) {
 		SpringApplication.run(SpTaskApplication.class);
 		SpCloudUtil.printCurrentServiceInfo();
-		// SaIdUtil.refreshToken();
+		 SaIdUtil.refreshToken();
 	}
 
 }

+ 2 - 2
sp-service/sp-task/src/main/java/com/pj/task/GatewayTokenRefreshTask.java

@@ -22,8 +22,8 @@ public class GatewayTokenRefreshTask {
 	// 从 0 分钟开始 每隔 5 分钟执行一次 
 	@Scheduled(cron = "0 0/5 * * * ? ")
 	public void systemAuto_doCancel(){
-		SaIdUtil.refreshToken();
-		LogUtil.info("============= 执行完毕:刷新网关鉴权token:" + NbUtil.getNow());
+	String token=	SaIdUtil.refreshToken();
+		LogUtil.info("============= 执行完毕:刷新网关鉴权token:{},{}" + NbUtil.getNow()+" "+token);
 	}
 	
 }