Explorar o código

Update 优化satoken异常信息,强制返回json格式

Yue hai 6 meses
pai
achega
e61856cfc1

+ 9 - 1
SERVER/VberAdminPlusV3/vber-common/vber-common-security/src/main/java/com/vber/common/security/config/SecurityConfig.java

@@ -7,6 +7,7 @@ import cn.dev33.satoken.interceptor.SaInterceptor;
 import cn.dev33.satoken.router.SaRouter;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.dev33.satoken.util.SaResult;
+import cn.dev33.satoken.util.SaTokenConsts;
 import com.vber.common.core.constant.HttpStatus;
 import com.vber.common.core.exception.SseException;
 import com.vber.common.core.utils.ServletUtils;
@@ -16,6 +17,7 @@ import com.vber.common.satoken.utils.LoginHelper;
 import com.vber.common.security.config.properties.SecurityProperties;
 import com.vber.common.security.handler.AllUrlHandler;
 import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -55,6 +57,8 @@ public class SecurityConfig implements WebMvcConfigurer {
                             // 对未排除的路径进行检查
                             .check(() -> {
                                 HttpServletRequest request = ServletUtils.getRequest();
+                                HttpServletResponse response = ServletUtils.getResponse();
+                                response.setContentType(SaTokenConsts.CONTENT_TYPE_APPLICATION_JSON);
                                 try {
                                     // 检查是否登录 是否有token
                                     StpUtil.checkLogin();
@@ -97,6 +101,10 @@ public class SecurityConfig implements WebMvcConfigurer {
                 .setAuth(obj -> {
                     SaHttpBasicUtil.check(username + ":" + password);
                 })
-                .setError(e -> SaResult.error(e.getMessage()).setCode(HttpStatus.UNAUTHORIZED));
+                .setError(e -> {
+                    HttpServletResponse response = ServletUtils.getResponse();
+                    response.setContentType(SaTokenConsts.CONTENT_TYPE_APPLICATION_JSON);
+                    return SaResult.error(e.getMessage()).setCode(HttpStatus.UNAUTHORIZED);
+                });
     }
 }