diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java
index e07341af3..436d48f0a 100644
--- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java
+++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java
@@ -27,6 +27,8 @@ package cn.stylefeng.roses.kernel.sys.api;
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition;
import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceUrlParam;
+import java.util.Set;
+
/**
* 资源服务相关接口
*
@@ -47,4 +49,16 @@ public interface ResourceServiceApi {
*/
ResourceDefinition getResourceByUrl(ResourceUrlParam resourceUrlReq);
+ /**
+ * 获取资源的url列表,根据资源code集合查询
+ *
+ * 一般用在api认证模块,获取api客户端的url范围
+ *
+ * @param resourceCodes 资源编码集合
+ * @return 资源url列表
+ * @author fengshuonan
+ * @since 2020/11/29 19:49
+ */
+ Set getResourceUrlsListByCodes(Set resourceCodes);
+
}
diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java
index 561afdf06..07cbb22ff 100644
--- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java
+++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java
@@ -52,10 +52,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 资源表 服务实现类
@@ -230,6 +228,22 @@ public class SysResourceServiceImpl extends ServiceImpl getResourceUrlsListByCodes(Set resourceCodes) {
+ if (resourceCodes == null || resourceCodes.isEmpty()) {
+ return new HashSet<>();
+ }
+
+ // 拼接in条件
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(SysResource::getResourceCode, resourceCodes);
+ queryWrapper.select(SysResource::getUrl);
+
+ // 获取资源详情
+ List list = this.list(queryWrapper);
+ return list.stream().map(SysResource::getUrl).collect(Collectors.toSet());
+ }
+
/**
* 创建wrapper
*