chejianzheng 3 mesiacov pred
rodič
commit
97c30f1f3c

+ 19 - 0
src/main/java/cn/hfln/framework/gateway/config/SaTokenConfigure.java

@@ -1,10 +1,14 @@
 package cn.hfln.framework.gateway.config;
 
 import cn.dev33.satoken.context.SaHolder;
+import cn.dev33.satoken.error.SaErrorCode;
+import cn.dev33.satoken.exception.SaTokenException;
 import cn.dev33.satoken.reactor.filter.SaReactorFilter;
 import cn.dev33.satoken.router.SaRouter;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.util.SaResult;
+import cn.hfln.framework.dto.ApiResult;
+import com.alibaba.fastjson2.JSON;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -62,6 +66,21 @@ public class SaTokenConfigure {
 				})
 				// 异常处理方法:每次setAuth函数出现异常时进入
 				.setError(e -> {
+
+					if (e instanceof SaTokenException) {
+						int code = ((SaTokenException)e).getCode();
+						String errMsg = e.getMessage();
+//						if (SaErrorCode.CODE_11041 == code) {
+//							errMsg = "当前账户无此权限";
+//						} else if (SaErrorCode.CODE_11011 == code) {
+//							errMsg = "当前账户未登录";
+//						} else if (SaErrorCode.CODE_11014 == code) {
+//							errMsg = "当前账户已被顶下线,请重新登录";
+//						}
+
+						return JSON.toJSONString(ApiResult.failed(String.valueOf(code), errMsg));
+					}
+
 					return SaResult.error(e.getMessage());
 				})
 				;