springboot項目關閉swagger如何防止漏洞掃描
為了應對安全掃描,再生產(chǎn)環(huán)境下關閉swagger ui
1、項目中關閉swagger
在這里用的是config配置文件的方式關閉的
@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
@Value("${swagger.enable}")
private Boolean enable;
@Bean
public Docket swaggerPersonApi10() {
return new Docket(DocumentationType.SWAGGER_2)
.enable(enable) //配置在該處生效
.select()
.apis(RequestHandlerSelectors.basePackage("com.unidata.cloud.logservice.api.controller"))
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.version("1.0")
.title("")
.contact(new Contact("", "", ""))
.description("")
.build();
}
}在application.properties中增加
swagger.enable: false
來控制關閉,如果想開啟就改為true
2、到這里其實已經(jīng)關閉swagger 了,但是安全掃描還是不能通過,因為訪問swagger-ui.html路徑會跳出提示swagger已關閉的頁面,而安全掃描只要返回的頁面中含有swagger的字符,就會不通過,這里還需要一步,讓訪問swagger-ui.html頁面直接返回404
首先新增一個監(jiān)聽config
public class SwaggerInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestUri = request.getRequestURI();
if (requestUri.contains("swagger-ui")) {
response.sendRedirect("/404"); // 可以重定向到自定義的錯誤頁面
return false;
}
return true;
}
}然后在之前的config中添加一段代碼
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SwaggerInterceptor()).addPathPatterns("/**");
}好的,到這里就已經(jīng)徹底關閉swagger了
到此這篇關于springboot項目關閉swagger防止漏洞掃描的文章就介紹到這了,更多相關springboot項目關閉swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot?AOP統(tǒng)一處理Web請求日志的示例代碼
springboot有很多方法處理日志,例如攔截器,aop切面,service中代碼記錄等,下面這篇文章主要給大家介紹了關于SpringBoot?AOP統(tǒng)一處理Web請求日志的相關資料,需要的朋友可以參考下2023-02-02
Java常用類庫Apache Commons工具類說明及使用實例詳解
這篇文章主要介紹了Java常用類庫Apache Commons工具類說明及使用實例詳解,需要的朋友可以參考下2020-02-02
Spring Boot學習入門之統(tǒng)一異常處理詳解
我們在做Web應用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。下面這篇文章主要給大家介紹了關于Spring Boot學習入門之統(tǒng)一異常處理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-09-09

