package com.test.musichouduan.config; import cn.dev33.satoken.stp.StpInterface; import com.test.musichouduan.entity.User; import com.test.musichouduan.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * 自定义权限验证接口扩展 */ @Component public class StpInterfaceImpl implements StpInterface { @Autowired private UserRepository userRepository; /** * 返回一个账号所拥有的权限码集合 */ @Override public List getPermissionList(Object loginId, String loginType) { // 暂时不需要权限码 return new ArrayList<>(); } /** * 返回一个账号所拥有的角色标识集合 */ @Override public List getRoleList(Object loginId, String loginType) { List roles = new ArrayList<>(); // 获取用户ID Long userId = Long.parseLong(loginId.toString()); // 查询用户 userRepository.findById(userId).ifPresent(user -> { // 根据用户的role字段设置角色 if (user.getRole() == 1) { roles.add("admin"); } else { roles.add("user"); } }); return roles; } }