fix 修复Token过期获取用户空指针异常,根据message内容返回401状态

This commit is contained in:
soulmate 2024-08-28 00:18:39 +08:00
parent b82ff8617e
commit 9833839798
2 changed files with 17 additions and 0 deletions

View File

@ -1,8 +1,12 @@
package org.dromara.common.satoken.core.service;
import cn.dev33.satoken.stp.StpInterface;
import cn.hutool.http.HttpStatus;
import org.apache.commons.lang3.ObjectUtils;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.satoken.utils.LoginHelper;
import java.util.ArrayList;

View File

@ -156,4 +156,17 @@ public class GlobalExceptionHandler {
return R.fail(message);
}
/**
* 拦截空指针异常异常
*/
@ExceptionHandler(NullPointerException.class)
public R<Void> handleNullPointerException(NullPointerException e) {
log.error(e.getMessage());
String message = e.getMessage();
if (message.contains("because \"loginUser\" is null")) {
return R.fail(HttpStatus.HTTP_UNAUTHORIZED, "认证失败,无法访问系统资源");
}
return R.fail(message);
}
}