SpringBoot线上环境彻底关闭Swagger-UI的方式
目录
- 概要
- 整体架构流程
- 技术细节
- 小结
概要
Springboot线上环境彻底关闭Swagger-UI
整体架构流程
1.SwaggerConfig使用@Profile排除线上环境ncpCOnb其他环境生效
2.创建一个控制类使用@Profile编程仅线上环境生效,使访问swagger-ui.html返回404技术细节
/** * @author: suihttp://www.devze.comtman * @description: go fucking comment.... * @create: 2021-02-07 10:43 **/ @Configuration @EnableSwagger2 @Profile("!prod") public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(new ApiInfoBuilder() // 设置标题 .title("****") // 描述 .description("***") // 作者信息 .contact(new Contact("***", null, null)) // 版本 .v编程ersion("版本号: 1") .build()) .select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .paths(PathSelectors.any()) .build(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Profile; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.b编程ind.annotation.RestController; import Javax.servlet.http.HttpServletResponse; import java.io.IOException; @Profile("prod") @RestController @Slf4j public class DisableSwaggerUiController { @RequestMapping(value = "swagger-ui.html", method = RequestMethod.GET) public void getSwagger(HttpServletResponse httpResponse) throws IOException { httpResponse.setStatus(HttpStatus.NOT_FOUND.value()); } }
小结
通过这种方式可以彻底关闭线上环境访问swagger-ui.html直接返回404
到此这篇关于SpringBoot线上环境彻底关闭Swagger-UI的方式的文章就介绍到这了,更多相关SpringBoot彻底关闭Swagger-UI内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论