| | |
| | | |
| | | @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); |