Browse Source

优化未配置权限时无法登录问题

zhou-hao 5 years ago
parent
commit
0ab2040246

+ 6 - 3
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java

@@ -64,7 +64,8 @@ public class DefaultReactiveAuthenticationInitializeService
                     .username(user.getUsername())
                     .userType(user.getType())
                     .build());
-            return initPermission(authentication);
+            return initPermission(authentication)
+                    .switchIfEmpty(Mono.just(authentication));
         });
 
     }
@@ -92,7 +93,8 @@ public class DefaultReactiveAuthenticationInitializeService
                 .flatMap(allDimension ->
                         Mono.zip(
                                 getAllPermission()
-                                , getSettings(allDimension).collect(Collectors.groupingBy(AuthorizationSettingEntity::getPermission))
+                                , getSettings(allDimension)
+                                        .collect(Collectors.groupingBy(AuthorizationSettingEntity::getPermission))
                                 , (_p, _s) -> handlePermission(authentication, allDimension, _p, _s)
                         ));
 
@@ -190,7 +192,8 @@ public class DefaultReactiveAuthenticationInitializeService
                 .createQuery()
                 .where(PermissionEntity::getStatus, 1)
                 .fetch()
-                .collect(Collectors.toMap(PermissionEntity::getId, Function.identity()));
+                .collect(Collectors.toMap(PermissionEntity::getId, Function.identity()))
+                .switchIfEmpty(Mono.just(Collections.emptyMap()));
     }
 
 }