From 5882ba8863d77fdcc168b176c3ffb30e8a20556a Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 13 七月 2026 17:54:25 +0800
Subject: [PATCH] 缩短二维码原始参数

---
 backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java b/backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java
index aac0091..b90acca 100644
--- a/backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java
+++ b/backend/src/main/java/com/sinata/appointment/common/GlobalExceptionHandler.java
@@ -1,6 +1,7 @@
 package com.sinata.appointment.common;
 
 import cn.dev33.satoken.exception.NotLoginException;
+import cn.dev33.satoken.exception.NotPermissionException;
 import com.sinata.appointment.constants.HttpBizCode;
 import com.sinata.appointment.exception.BizException;
 
@@ -34,14 +35,28 @@
     
     @ExceptionHandler(SaTokenException.class)
     public Result<Void> handleSaToken(SaTokenException e) {
-        log.error("satoken error", e);
+        if (e instanceof NotPermissionException){
+            log.warn("satoken forbidden: {}", safeMessage(e));
+            return ResultUtil.error(HttpBizCode.FORBIDDEN, "无权限访问");
+        }
         if (e instanceof NotLoginException notLogin
                 && NotLoginException.KICK_OUT.equals(notLogin.getType())) {
+            log.warn("satoken unauthorized: type={} message={}", notLogin.getType(), safeMessage(e));
             return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号已被禁用,请重新登录");
         }
+        if (e instanceof NotLoginException notLogin) {
+            log.warn("satoken unauthorized: type={} message={}", notLogin.getType(), safeMessage(e));
+            return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号信息已过期,请重新登录");
+        }
+        log.warn("satoken error: {} message={}", e.getClass().getSimpleName(), safeMessage(e));
         return ResultUtil.error(HttpBizCode.UNAUTHORIZED, "账号信息已过期,请重新登录");
     }
 
+    private String safeMessage(Exception e) {
+        String message = e.getMessage();
+        return message == null || message.isBlank() ? "-" : message;
+    }
+
     @ExceptionHandler(Exception.class)
     public Result<Void> handleOther(Exception e) {
         log.error("Unhandled error", e);

--
Gitblit v1.7.1