wuheng 1 rok temu
rodzic
commit
3d55a1c91b

+ 1 - 0
dao/src/main/resources/com/koobietech/eas/dao/mapper/AdminLoginMapper.xml

@@ -135,6 +135,7 @@
         SELECT
             d.id,
             d.depname,
+            d.authority,
             d.address,
             d.phone,
             d.email,

+ 6 - 4
security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java

@@ -72,10 +72,12 @@ public class EasSecurityFilter extends OncePerRequestFilter {
                     ArrayList<SimpleGrantedAuthority> objects = new ArrayList<>();
 
                     // 遍历用户的权限列表
-                    for (String userPermission : permissionPojo) {
-                        // 创建一个 SimpleGrantedAuthority 权限对象,并添加到集合中
-                        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(userPermission);
-                        objects.add(authority);
+                    if ( Objects.nonNull(permissionPojo) ) {
+                        for (String userPermission : permissionPojo) {
+                            // 创建一个 SimpleGrantedAuthority 权限对象,并添加到集合中
+                            SimpleGrantedAuthority authority = new SimpleGrantedAuthority(userPermission);
+                            objects.add(authority);
+                        }
                     }
 
                     // 使用用户的用户名、空凭证参数和权限对象集合创建一个 UsernamePasswordAuthenticationToken 身份验证令牌

+ 6 - 4
service/src/main/java/com/koobietech/eas/service/impl/EasSysStudentLoginServiceImpl.java

@@ -100,10 +100,12 @@ public class EasSysStudentLoginServiceImpl implements EasSysStudentLoginService
         departments.forEach(departmentPojo -> {
             try {
                 String authority = departmentPojo.getAuthority();
-                String methodName = Character.toUpperCase(authority.charAt(0)) + authority.substring(1);
-                Method declaredMethod = easAuthorityConfig.getClass().getDeclaredMethod("get" + methodName, null);
-                List<String> depUrlList = (List<String>) declaredMethod.invoke(easAuthorityConfig, null);
-                userDetailPojo.setPermissionPojos(depUrlList);
+                if (authority != null && !authority.isEmpty() && !authority.isBlank() ) {
+                    String methodName = Character.toUpperCase(authority.charAt(0)) + authority.substring(1);
+                    Method declaredMethod = easAuthorityConfig.getClass().getDeclaredMethod("get" + methodName, null);
+                    List<String> depUrlList = (List<String>) declaredMethod.invoke(easAuthorityConfig, null);
+                    userDetailPojo.setPermissionPojos(depUrlList);
+                }
             } catch (NoSuchMethodException ignored) {}
             catch (InvocationTargetException | IllegalAccessException ignored) {}
         });