Browse Source

stream错误

yingp 7 years ago
parent
commit
0440b59538

+ 7 - 6
base-servers/gateway-server/src/main/java/com/usoftchina/saas/gateway/config/AuthFilter.java

@@ -23,7 +23,7 @@ import reactor.core.publisher.Mono;
 
 import java.util.List;
 import java.util.Set;
-import java.util.stream.Stream;
+import java.util.stream.Collectors;
 
 /**
  * 全局过滤器鉴权
@@ -66,19 +66,20 @@ public class AuthFilter implements GlobalFilter, Ordered {
             List<UrlResourceDTO> resources = ResourceCache.of(jwt.getAppId()).getUrlResources();
             if (!CollectionUtils.isEmpty(resources)) {
                 // 本次请求相关的资源
-                Stream<UrlResourceDTO> permissions = resources.parallelStream().filter(resource -> {
+                List<UrlResourceDTO> permissions = resources.parallelStream().filter(resource -> {
                     AntPathRequestMatcher matcher = new AntPathRequestMatcher(resource.getUrl(), resource.getMethod());
                     return matcher.matches(request);
-                });
-                if (permissions.count() > 0) {
+                }).collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(permissions)) {
                     Set<Long> resourceIds = accountDTO.getResources(jwt.getAppId(), jwt.getCompanyId());
                     boolean permitted = false;
                     if (null != resourceIds) {
                         // 权限匹配
-                        permitted = permissions.anyMatch(resource -> resourceIds.contains(resource.getId()));
+                        permitted = permissions.stream()
+                                .anyMatch(resource -> resourceIds.contains(resource.getId()));
                     }
                     if (!permitted) {
-                        throw new PermissionException(permissions.findFirst().get());
+                        throw new PermissionException(permissions.get(0));
                     }
                 }
             }