springboot項目關閉swagger如何防止漏洞掃描
為了應對安全掃描,再生產環(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、到這里其實已經關閉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("/**"); }
好的,到這里就已經徹底關閉swagger了
到此這篇關于springboot項目關閉swagger防止漏洞掃描的文章就介紹到這了,更多相關springboot項目關閉swagger內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot?AOP統(tǒng)一處理Web請求日志的示例代碼
springboot有很多方法處理日志,例如攔截器,aop切面,service中代碼記錄等,下面這篇文章主要給大家介紹了關于SpringBoot?AOP統(tǒng)一處理Web請求日志的相關資料,需要的朋友可以參考下2023-02-02Java常用類庫Apache Commons工具類說明及使用實例詳解
這篇文章主要介紹了Java常用類庫Apache Commons工具類說明及使用實例詳解,需要的朋友可以參考下2020-02-02Spring Boot學習入門之統(tǒng)一異常處理詳解
我們在做Web應用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。下面這篇文章主要給大家介紹了關于Spring Boot學習入門之統(tǒng)一異常處理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-09-09