StpInterfaceImpl.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.ydtech.components;
  2. import cn.dev33.satoken.stp.StpInterface;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import com.ydtech.modules.admin.model.SysUser;
  5. import com.ydtech.modules.admin.service.SysUserService;
  6. import org.springframework.stereotype.Component;
  7. import javax.annotation.Resource;
  8. import java.io.Serializable;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. import java.util.Set;
  12. import java.util.stream.Collectors;
  13. /**
  14. * sa-token
  15. * 自定义权限加载接口实现类
  16. */
  17. @Component
  18. public class StpInterfaceImpl implements StpInterface {
  19. @Resource
  20. private SysUserService sysUserService;
  21. /**
  22. * 返回一个账号所拥有的权限码集合
  23. */
  24. @Override
  25. public List<String> getPermissionList(Object loginId, String loginType) {
  26. SysUser sysUser = sysUserService.getById(loginId.toString());
  27. Set<String> permissionsSet = sysUserService.findPermissions(sysUser);
  28. // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询权限
  29. List<String> list = permissionsSet.stream().collect(Collectors.toList());
  30. // list.add("101");
  31. // list.add("user.add");
  32. // list.add("user.update");
  33. // list.add("user.get");
  34. // // list.add("user.delete");
  35. // list.add("art.*");
  36. return list;
  37. }
  38. /**
  39. * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
  40. */
  41. @Override
  42. public List<String> getRoleList(Object loginId, String loginType) {
  43. // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询角色
  44. List<String> list = new ArrayList<String>();
  45. // list.add("admin");
  46. // list.add("super-admin");
  47. return list;
  48. }
  49. }