/** * Copyright (c) 2018-2028, lengleng (wangiegie@gmail.com). *

* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.gnu.org/licenses/lgpl.html *

* 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. */ package org.springblade.core.swagger; import lombok.Data; import lombok.NoArgsConstructor; import org.springblade.core.launch.constant.AppConstant; import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * SwaggerProperties * * @author Chill */ @Data @ConfigurationProperties("swagger") public class SwaggerProperties { /** * swagger会解析的包路径 **/ private List basePackages = new ArrayList<>(Collections.singletonList(AppConstant.BASE_PACKAGES)); /** * swagger会解析的url规则 **/ private List basePath = new ArrayList<>(); /** * 在basePath基础上需要排除的url规则 **/ private List excludePath = new ArrayList<>(); /** * 标题 **/ private String title = "SpringBlade 接口文档系统"; /** * 描述 **/ private String description = "SpringBlade 接口文档系统"; /** * 版本 **/ private String version = "3.5.0"; /** * 许可证 **/ private String license = ""; /** * 许可证URL **/ private String licenseUrl = ""; /** * 服务条款URL **/ private String termsOfServiceUrl = ""; /** * host信息 **/ private String host = ""; /** * 联系人信息 */ private Contact contact = new Contact(); /** * 全局统一鉴权配置 **/ private Authorization authorization = new Authorization(); @Data @NoArgsConstructor public static class Contact { /** * 联系人 **/ private String name = "chillzhuang"; /** * 联系人url **/ private String url = ""; /** * 联系人email **/ private String email = "smallchill@163.com"; } @Data @NoArgsConstructor public static class Authorization { /** * 鉴权策略ID,需要和SecurityReferences ID保持一致 */ private String name = ""; /** * 需要开启鉴权URL的正则 */ private String authRegex = "^.*$"; /** * 鉴权作用域列表 */ private List authorizationScopeList = new ArrayList<>(); /** * 鉴权请求头参数列表 */ private List authorizationApiKeyList = new ArrayList<>(); /** * 接口匹配地址 */ private List tokenUrlList = new ArrayList<>(); } @Data @NoArgsConstructor public static class AuthorizationScope { /** * 鉴权策略名, 需要和ApiKey的name保持一致 */ private String name = ""; /** * 作用域名称 */ private String scope = ""; /** * 作用域描述 */ private String description = ""; } @Data @NoArgsConstructor public static class AuthorizationApiKey { /** * 参数名 */ private String name = ""; /** * 参数值 */ private String keyName = ""; /** * 参数作用域 */ private String passAs = ""; } }