From 7150244f01afad7ad6056aac545871e648390ebe Mon Sep 17 00:00:00 2001 From: stylefeng Date: Wed, 10 Jul 2024 21:35:21 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.1.9=E3=80=91=E3=80=90security?= =?UTF-8?q?=E3=80=91=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96=E9=BB=91=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SecurityPermissionConstants.java | 40 +++++++++++++ .../SecurityBlackWhiteController.java | 56 +++++++++++++++++++ .../blackwhite/pojo/BlackWhiteList.java | 29 ++++++++++ 3 files changed, 125 insertions(+) create mode 100644 kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/constants/SecurityPermissionConstants.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/controller/SecurityBlackWhiteController.java create mode 100644 kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/pojo/BlackWhiteList.java diff --git a/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/constants/SecurityPermissionConstants.java b/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/constants/SecurityPermissionConstants.java new file mode 100644 index 000000000..7820a1eaa --- /dev/null +++ b/kernel-d-security/security-api/src/main/java/cn/stylefeng/roses/kernel/security/api/constants/SecurityPermissionConstants.java @@ -0,0 +1,40 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.security.api.constants; + +/** + * 安全模块的系统权限编码常量 + * + * @author fengshuonan + * @since 2024/7/10 21:32 + */ +public interface SecurityPermissionConstants { + + /** + * 黑白名单的在线维护 + */ + String BLACK_WHITE_LIST_UPDATE = "BLACK_WHITE_LIST_UPDATE"; + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/controller/SecurityBlackWhiteController.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/controller/SecurityBlackWhiteController.java new file mode 100644 index 000000000..4ffec27ba --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/controller/SecurityBlackWhiteController.java @@ -0,0 +1,56 @@ +package cn.stylefeng.roses.kernel.security.blackwhite.controller; + +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.security.api.constants.SecurityPermissionConstants; +import cn.stylefeng.roses.kernel.security.blackwhite.BlackListService; +import cn.stylefeng.roses.kernel.security.blackwhite.WhiteListService; +import cn.stylefeng.roses.kernel.security.blackwhite.pojo.BlackWhiteList; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; + +/** + * 黑白名单接口 + * + * @author fengshuonan + * @since 2024/7/10 18:52 + */ +@RestController +@ApiResource(name = "黑白名单接口", requiredPermission = true, requirePermissionCode = SecurityPermissionConstants.BLACK_WHITE_LIST_UPDATE) +public class SecurityBlackWhiteController { + + @Resource + private BlackListService blackListService; + + @Resource + private WhiteListService whiteListService; + + /** + * 获取所有的黑白名单列表 + * + * @author fengshuonan + * @since 2024/7/10 21:29 + */ + @GetResource(name = "获取黑白名单列表", path = "/blackWhite/list") + public ResponseData blackWhiteList() { + + BlackWhiteList blackWhiteList = new BlackWhiteList(); + + // 获取白名单 + Collection blackList = blackListService.getBlackList(); + blackWhiteList.setBlackList(new ArrayList<>(blackList)); + + // 获取黑名单 + Collection whiteList = whiteListService.getWhiteList(); + blackWhiteList.setWhiteList(new ArrayList<>(whiteList)); + + return new SuccessResponseData<>(blackWhiteList); + } + + +} diff --git a/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/pojo/BlackWhiteList.java b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/pojo/BlackWhiteList.java new file mode 100644 index 000000000..66a7144e2 --- /dev/null +++ b/kernel-d-security/security-sdk-black-white/src/main/java/cn/stylefeng/roses/kernel/security/blackwhite/pojo/BlackWhiteList.java @@ -0,0 +1,29 @@ +package cn.stylefeng.roses.kernel.security.blackwhite.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; + +import java.util.List; + +/** + * 黑白名单列表 + * + * @author fengshuonan + * @since 2024/7/10 21:30 + */ +@Data +public class BlackWhiteList { + + /** + * 黑名单列表 + */ + @ChineseDescription("黑名单列表") + private List blackList; + + /** + * 白名单列表 + */ + @ChineseDescription("白名单列表") + private List whiteList; + +}