- 在 MusicDTO、PlaylistDTO、SingerDTO 和 UserDTO 中使用 LocalDateTimeDeserializer -统一时间格式为 "yyyy-MM-dd HH:mm:ss" - 移除了 SaTokenConfig 和 StpInterfaceImpl 中的调试信息打印
53 lines
1.4 KiB
Java
53 lines
1.4 KiB
Java
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<String> getPermissionList(Object loginId, String loginType) {
|
|
// 暂时不需要权限码
|
|
return new ArrayList<>();
|
|
}
|
|
|
|
/**
|
|
* 返回一个账号所拥有的角色标识集合
|
|
*/
|
|
@Override
|
|
public List<String> getRoleList(Object loginId, String loginType) {
|
|
List<String> 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;
|
|
}
|
|
}
|