blob: 8bf2c13532d8ceb7bd6be4bc88bf9b64de77267f [file] [log] [blame]
Jinf50fba62025-06-09 22:47:24 +08001package com.example.myproject.config;
2
3import cn.dev33.satoken.stp.StpInterface;
4import lombok.RequiredArgsConstructor;
5import org.springframework.stereotype.Component;
6
7import com.example.myproject.entity.Users;
8import com.example.myproject.repository.UserRepository;
9import org.springframework.transaction.annotation.Transactional;
10
11import java.util.ArrayList;
12import java.util.List;
13
14/**
15 * 自定义权限加载接口实现类
16 */
17@Component // 保证此类被 SpringBoot 扫描,完成 Sa-Token 的自定义权限验证扩展
18@RequiredArgsConstructor
19public 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}