在CentOS上为Swagger添加认证,通常是指为基于Spring Boot的应用程序配置Swagger,并添加某种形式的认证机制。以下是一个基本的步骤指南,假设你已经在CentOS上安装了Java和Maven,并且已经创建了一个Spring Boot项目。
pom.xml文件中添加Swagger和Springfox的依赖项。<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.yourpackage")) .paths(PathSelectors.any()) .build(); } } import springfox.documentation.service.ApiInfo; import springfox.documentation.service.AuthorizationScope; import springfox.documentation.service.SecurityScheme; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.Collections; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.yourpackage")) .paths(PathSelectors.any()) .build() .securitySchemes(Arrays.asList(securityScheme())) .securityContexts(Arrays.asList(securityContext())); } private SecurityScheme securityScheme() { return new SecurityScheme("basicAuth", Collections.singletonList(new AuthorizationScope("global", "accessEverything")), "Authorization"); } private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("/api/.*")) .build(); } List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return Arrays.asList(new SecurityReference("basicAuth", authorizationScopes)); } } 重启应用: 保存你的更改并重启Spring Boot应用程序。
访问Swagger UI: 打开浏览器并访问http://yourserver:port/swagger-ui.html。你应该会看到Swagger UI界面,并且在尝试访问任何API端点时都会提示进行基本认证。
请注意,上面的代码示例使用的是Springfox 2.9.2版本,这是当时较流行的版本。如果你使用的是更新的版本,可能需要根据最新的文档进行调整。此外,基本认证只是众多认证方式中的一种,你可以根据需要实现其他类型的认证,例如OAuth2、JWT等。