|
@@ -0,0 +1,58 @@
|
|
|
|
|
+package com.ydtech.components;
|
|
|
|
|
+
|
|
|
|
|
+import cn.dev33.satoken.stp.StpInterface;
|
|
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
+import com.ydtech.modules.admin.model.SysUser;
|
|
|
|
|
+import com.ydtech.modules.admin.service.SysUserService;
|
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
|
+
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
|
+import java.io.Serializable;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * sa-token
|
|
|
|
|
+ * 自定义权限加载接口实现类
|
|
|
|
|
+ */
|
|
|
|
|
+@Component
|
|
|
|
|
+public class StpInterfaceImpl implements StpInterface {
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SysUserService sysUserService;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 返回一个账号所拥有的权限码集合
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<String> getPermissionList(Object loginId, String loginType) {
|
|
|
|
|
+
|
|
|
|
|
+ SysUser sysUser = sysUserService.getById(loginId.toString());
|
|
|
|
|
+ Set<String> permissionsSet = sysUserService.findPermissions(sysUser);
|
|
|
|
|
+
|
|
|
|
|
+ // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询权限
|
|
|
|
|
+ List<String> list = permissionsSet.stream().collect(Collectors.toList());
|
|
|
|
|
+// list.add("101");
|
|
|
|
|
+// list.add("user.add");
|
|
|
|
|
+// list.add("user.update");
|
|
|
|
|
+// list.add("user.get");
|
|
|
|
|
+// // list.add("user.delete");
|
|
|
|
|
+// list.add("art.*");
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<String> getRoleList(Object loginId, String loginType) {
|
|
|
|
|
+ // 本 list 仅做模拟,实际项目中要根据具体业务逻辑来查询角色
|
|
|
|
|
+ List<String> list = new ArrayList<String>();
|
|
|
|
|
+// list.add("admin");
|
|
|
|
|
+// list.add("super-admin");
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|