package com.ydtech.components; import cn.dev33.satoken.stp.StpInterface; import cn.dev33.satoken.stp.StpUtil; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.service.SysUserService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * sa-token * 自定义权限加载接口实现类 */ @Component public class StpInterfaceImpl implements StpInterface { @Resource private SysUserService sysUserService; /** * 返回一个账号所拥有的权限码集合 */ @Override public List getPermissionList(Object loginId, String loginType) { SysUser sysUser = sysUserService.getById(loginId.toString()); Set permissionsSet = sysUserService.findPermissions(sysUser); // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询权限 List list = permissionsSet.stream().collect(Collectors.toList()); // list.add("101"); // list.add("user.add"); // list.add("user.update"); // list.add("user.get"); // // list.add("user.delete"); // list.add("art.*"); return list; } /** * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验) */ @Override public List getRoleList(Object loginId, String loginType) { // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询角色 List list = new ArrayList(); // list.add("admin"); // list.add("super-admin"); return list; } }