Files
spring-boot-base-demo/src/main/java/cn/xf/basedemo/interceptor/StpInterfaceImpl.java
海言 11a70628ce fix(security): 统一异常处理响应格式并完善拦截器配置
- 将全局异常处理器中的返回类型从 GenericResponse 统一为 RetObj
- 更新登录、权限、角色异常的错误消息为中文提示
- 在拦截器配置中添加 swagger-ui 相关路径的排除规则
- 将拦截器中的 postHandle 方法改为 afterCompletion 以确保请求结束后清理 ThreadLocal
- 修复 StpInterfaceImpl 中的类型转换问题,确保用户ID正确转换为Long类型
2026-05-28 16:00:05 +08:00

42 lines
1.1 KiB
Java

package cn.xf.basedemo.interceptor;
import cn.dev33.satoken.stp.StpInterface;
import cn.xf.basedemo.mappers.SysPermissionMapper;
import cn.xf.basedemo.mappers.SysRoleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Description: 权限加载组件类
* @ClassName: StpInterfaceImpl
* @Author: xiongfeng
* @Date: 2025/8/18 22:51
* @Version: 1.0
*/
@Component
public class StpInterfaceImpl implements StpInterface {
@Autowired
private SysPermissionMapper sysPermissionMapper;
@Autowired
private SysRoleMapper sysRoleMapper;
@Override
public List<String> getPermissionList(Object userId, String s) {
// 获取登录用户权限数据
Long uId = Long.valueOf(userId.toString());
List<String> permissionList = sysPermissionMapper.getPermissionListByUserId(uId);
return permissionList;
}
@Override
public List<String> getRoleList(Object userId, String s) {
// 获取用户角色数据
Long uId = Long.valueOf(userId.toString());
return sysRoleMapper.getRoleListByUserId(uId);
}
}