Configuration//声明当前类是一个配置类 public class SwaggerConfig { @Bean//往spring 容器里面加一个对象 public Docket getDocket() { //swagger 有安全配置,可以在全局上在请求头中加入令牌 //authentication ApiInfo apiInfo = new ApiInfoBuilder().title("物业管理系统").description("这是一个小区物业管理系统,目前正在开发,作者是XXX").build(); return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo) .select() .apis(RequestHandlerSelectors.basePackage("cn.hx.property.controller"))//指定哪些包下面的控制器生成文档 // /* 匹配单层路径 /** 匹配多层路径 ?匹配一个字符 .paths(PathSelectors.ant("/**")).build().securitySchemes(securitySchemes()).securityContexts(securityContexts()); } private List<SecurityScheme> securitySchemes() { List<SecurityScheme> securitySchemes = new ArrayList<>(); securitySchemes.add(new ApiKey(LoginInterceptor.tokenName, LoginInterceptor.tokenName, "header")); return securitySchemes; } private List<SecurityContext> securityContexts() { List<SecurityContext> securityContexts = new ArrayList<>(); securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("^(?!auth).*$")).build()); return securityContexts; } private List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; List<SecurityReference> securityReferences = new ArrayList<>(); securityReferences.add(new SecurityReference(LoginInterceptor.tokenName, authorizationScopes)); return securityReferences; } }
swagger3配置类
最新推荐文章于 2024-09-27 14:28:44 发布
该配置类用于设置Swagger2,创建了一个Docket实例,定义了API信息,包括系统名称和描述。配置了安全方案,使用apiKey作为认证方式,添加了全局请求头中的令牌。安全上下文针对除auth路径外的所有路径进行授权,允许访问所有资源。
摘要由CSDN通过智能技术生成