Jin | f50fba6 | 2025-06-09 22:47:24 +0800 | [diff] [blame^] | 1 | package com.example.myproject.config; |
| 2 | |
| 3 | import cn.dev33.satoken.stp.StpInterface; |
| 4 | import lombok.RequiredArgsConstructor; |
| 5 | import org.springframework.stereotype.Component; |
| 6 | |
| 7 | import com.example.myproject.entity.Users; |
| 8 | import com.example.myproject.repository.UserRepository; |
| 9 | import org.springframework.transaction.annotation.Transactional; |
| 10 | |
| 11 | import java.util.ArrayList; |
| 12 | import java.util.List; |
| 13 | |
| 14 | /** |
| 15 | * 自定义权限加载接口实现类 |
| 16 | */ |
| 17 | @Component // 保证此类被 SpringBoot 扫描,完成 Sa-Token 的自定义权限验证扩展 |
| 18 | @RequiredArgsConstructor |
| 19 | public class StpInterfaceImpl implements StpInterface { |
| 20 | private final UserRepository userRepository; |
| 21 | |
| 22 | /** |
| 23 | * 返回一个账号所拥有的权限码集合 |
| 24 | */ |
| 25 | @Override |
| 26 | public List<String> getPermissionList(Object loginId, String loginType) { |
| 27 | return new ArrayList<>(); |
| 28 | } |
| 29 | |
| 30 | /** |
| 31 | * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验) |
| 32 | */ |
| 33 | @Override |
| 34 | @Transactional |
| 35 | public List<String> getRoleList(Object loginId, String loginType) { |
| 36 | List<String> list = new ArrayList<String>(); |
| 37 | long id = 0; |
| 38 | if(loginId instanceof String){ |
| 39 | id = Long.parseLong(loginId.toString()); |
| 40 | }else{ |
| 41 | id = (long) loginId; |
| 42 | } |
| 43 | Users user = userRepository.getById(id); |
| 44 | list.add(user.getLevelRole()); |
| 45 | return list; |
| 46 | } |
| 47 | |
| 48 | } |