Spring Boot 禁用 Swagger 的三种方式
【摘要】 一、序言
在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。
二、方法:
禁用方法1:
使用注解 @Value() 推荐使用
package com.dc.config; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import o...
一、序言
在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。
二、方法:
禁用方法1:
使用注解 @Value() 推荐使用
-
package com.dc.config;
-
-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.Configuration;
-
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
import springfox.documentation.builders.ApiInfoBuilder;
-
import springfox.documentation.builders.PathSelectors;
-
import springfox.documentation.builders.RequestHandlerSelectors;
-
import springfox.documentation.service.ApiInfo;
-
import springfox.documentation.service.Contact;
-
import springfox.documentation.spi.DocumentationType;
-
import springfox.documentation.spring.web.plugins.Docket;
-
import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-
/**
-
* @author zhaohp
-
* @version V1.0
-
* @Package com.dc.config
-
* @date 2018/1/16 17:33
-
* @Description: 主要用途:开启在线接口文档和添加相关配置
-
*/
-
@Configuration
-
@EnableSwagger2
-
public class Swagger2Config extends WebMvcConfigurerAdapter {
-
-
@Value("${swagger.enable}")
-
private Boolean enable;
-
-
@Bean
-
public Docket createRestApi() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.enable(enable)
-
.apiInfo(apiInfo())
-
.select()
-
.apis(RequestHandlerSelectors.basePackage("com.dc.controller"))
-
.paths(PathSelectors.any())
-
//.paths(PathSelectors.none())
-
.build();
-
}
-
-
private ApiInfo apiInfo() {
-
return new ApiInfoBuilder()
-
.title("auth系统数据接口文档")
-
.description("此系统为新架构Api说明文档")
-
.termsOfServiceUrl("")
-
.contact(new Contact("赵化鹏 18310695431@163.com", "", "zhaohuapeng@zichan360.com"))
-
.version("1.0")
-
.build();
-
}
-
-
/**
-
* swagger ui资源映射
-
* @param registry
-
*/
-
@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/");
-
}
-
-
/**
-
* swagger-ui.html路径映射,浏览器中使用/api-docs访问
-
* @param registry
-
*/
-
@Override
-
public void addViewControllers(ViewControllerRegistry registry) {
-
registry.addRedirectViewController("/api-docs","/swagger-ui.html");
-
}
-
}
禁用方法2:
使用注解@Profile({“dev”,“test”}) 表示在开发或测试环境开启,而在生产关闭。(推荐使用)
-
package com.dc.config;
-
-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.Configuration;
-
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
import springfox.documentation.builders.ApiInfoBuilder;
-
import springfox.documentation.builders.PathSelectors;
-
import springfox.documentation.builders.RequestHandlerSelectors;
-
import springfox.documentation.service.ApiInfo;
-
import springfox.documentation.service.Contact;
-
import springfox.documentation.spi.DocumentationType;
-
import springfox.documentation.spring.web.plugins.Docket;
-
import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-
/**
-
* @author zhaohp
-
* @version V1.0
-
* @Package com.dc.config
-
* @date 2018/1/16 17:33
-
* @Description: 主要用途:开启在线接口文档和添加相关配置
-
*/
-
@Configuration
-
@EnableSwagger2
-
@Profile({“dev”,“test”})
-
public class Swagger2Config extends WebMvcConfigurerAdapter {
-
-
@Bean
-
public Docket createRestApi() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.apiInfo(apiInfo())
-
.select()
-
.apis(RequestHandlerSelectors.basePackage("com.dc.controller"))
-
.paths(PathSelectors.any())
-
//.paths(PathSelectors.none())
-
.build();
-
}
-
-
private ApiInfo apiInfo() {
-
return new ApiInfoBuilder()
-
.title("auth系统数据接口文档")
-
.description("此系统为新架构Api说明文档")
-
.termsOfServiceUrl("")
-
.contact(new Contact("赵化鹏 18310695431@163.com", "", "zhaohuapeng@zichan360.com"))
-
.version("1.0")
-
.build();
-
}
-
-
/**
-
* swagger ui资源映射
-
* @param registry
-
*/
-
@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/");
-
}
-
-
/**
-
* swagger-ui.html路径映射,浏览器中使用/api-docs访问
-
* @param registry
-
*/
-
@Override
-
public void addViewControllers(ViewControllerRegistry registry) {
-
registry.addRedirectViewController("/api-docs","/swagger-ui.html");
-
}
-
}
禁用方法3:
使用注解@ConditionalOnProperty(name = “swagger.enable”, havingValue = “true”) 然后在测试配置或者开发配置中 添加 swagger.enable = true 即可开启,生产环境不填则默认关闭Swagger.
-
package com.dc.config;
-
-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-
import org.springframework.context.annotation.Bean;
-
import org.springframework.context.annotation.Configuration;
-
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
import springfox.documentation.builders.ApiInfoBuilder;
-
import springfox.documentation.builders.PathSelectors;
-
import springfox.documentation.builders.RequestHandlerSelectors;
-
import springfox.documentation.service.ApiInfo;
-
import springfox.documentation.service.Contact;
-
import springfox.documentation.spi.DocumentationType;
-
import springfox.documentation.spring.web.plugins.Docket;
-
import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-
/**
-
* @author zhaohp
-
* @version V1.0
-
* @Package com.dc.config
-
* @date 2018/1/16 17:33
-
* @Description: 主要用途:开启在线接口文档和添加相关配置
-
*/
-
@Configuration
-
@EnableSwagger2
-
@ConditionalOnProperty(name ="enabled" ,prefix = "swagger",havingValue = "true",matchIfMissing = true)
-
public class Swagger2Config extends WebMvcConfigurerAdapter {
-
-
@Bean
-
public Docket createRestApi() {
-
return new Docket(DocumentationType.SWAGGER_2)
-
.apiInfo(apiInfo())
-
.select()
-
.apis(RequestHandlerSelectors.basePackage("com.dc.controller"))
-
.paths(PathSelectors.any())
-
//.paths(PathSelectors.none())
-
.build();
-
}
-
-
private ApiInfo apiInfo() {
-
return new ApiInfoBuilder()
-
.title("auth系统数据接口文档")
-
.description("此系统为新架构Api说明文档")
-
.termsOfServiceUrl("")
-
.contact(new Contact("赵化鹏 18310695431@163.com", "", "zhaohuapeng@zichan360.com"))
-
.version("1.0")
-
.build();
-
}
-
-
/**
-
* swagger ui资源映射
-
* @param registry
-
*/
-
@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/");
-
}
-
-
/**
-
* swagger-ui.html路径映射,浏览器中使用/api-docs访问
-
* @param registry
-
*/
-
@Override
-
public void addViewControllers(ViewControllerRegistry registry) {
-
registry.addRedirectViewController("/api-docs","/swagger-ui.html");
-
}
-
}
-
-
#Swagger lock
-
swagger:
-
enabled: true
文章来源: blog.csdn.net,作者:LookForDream_,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/LookForDream_/article/details/105073465
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)