| package com.example.myproject.config; |
| |
| import cn.dev33.satoken.stp.StpInterface; |
| import lombok.RequiredArgsConstructor; |
| import org.springframework.stereotype.Component; |
| |
| import com.example.myproject.entity.Users; |
| import com.example.myproject.repository.UserRepository; |
| import org.springframework.transaction.annotation.Transactional; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * 自定义权限加载接口实现类 |
| */ |
| @Component // 保证此类被 SpringBoot 扫描,完成 Sa-Token 的自定义权限验证扩展 |
| @RequiredArgsConstructor |
| public class StpInterfaceImpl implements StpInterface { |
| private final UserRepository userRepository; |
| |
| /** |
| * 返回一个账号所拥有的权限码集合 |
| */ |
| @Override |
| public List<String> getPermissionList(Object loginId, String loginType) { |
| return new ArrayList<>(); |
| } |
| |
| /** |
| * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验) |
| */ |
| @Override |
| @Transactional |
| public List<String> getRoleList(Object loginId, String loginType) { |
| List<String> list = new ArrayList<String>(); |
| long id = 0; |
| if(loginId instanceof String){ |
| id = Long.parseLong(loginId.toString()); |
| }else{ |
| id = (long) loginId; |
| } |
| Users user = userRepository.getById(id); |
| list.add(user.getLevelRole()); |
| return list; |
| } |
| |
| } |