Knife4j的請求示例當中有很多空白行的問題解決辦法
問題描述:
按正常來說不應該有上方的空白,當然如果只是查看我也不至于非要解決他,主要是假如接口是json傳參,調(diào)試界面都沒辦法修改參數(shù)…網(wǎng)上相關的資料又非常少,我別的項目引用的同樣的依賴并沒有出現(xiàn)如此情況。


引入的依賴:使用的springboot版本是2.3.12.RELEASE,使用的knife4j是2.0.9版本!
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.10.5</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.22</version>
</dependency>
Swagger2Config 配置類
@Configuration
@EnableSwagger2WebMvc
public class Swagger2Config {
@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.fiftyonetrust.zyy.stdc.admin.center.controller")).paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//頁面標題
.title("構建RESTful API").description("構建RESTful API")
//版本號
.version("1.0")
//描述
.description("API 描述").build();
}
}
該配置主要解決doc.html 404無法訪問的問題。
@Configuration
public class MyConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
查看F12發(fā)現(xiàn)別的項目訪問接口文檔并沒有這些錯誤,而這個項目全是以下錯誤信息:


解決過程:
剛開始我一直以為是Knife4j與security版本之間兼容問題導致的,然后也詢問了Knife4j官方人員,說有史以來沒有出現(xiàn)過類似的情況。針對于這個問題我也是排查了好幾天。
項目當中使用了security,排查security的配置。


這里使用到了一個JwtAuthenticationTokenFilter過濾器,過濾器當中有一行這個代碼注釋掉之后就可以了。

這里要注意,刪除掉之后一定要清除瀏覽器,不然可能會存在緩存。如下就是恢復正常了:

在網(wǎng)上查了關于這個Content-Security-Policy響應頭的說明,CSP相當于前臺的白名單,用來限制網(wǎng)站內(nèi)部一些資源獲取的來源,如限制CSS、JS、圖片或者第三方鏈接等。
CSP的設置可以在一定程度上限制XSS攻擊,有2種方式可以設置。第一種通過設置HTTP響應頭,另一種通過HTML的<meta>標簽。
XSS攻擊通常指的是通過利用網(wǎng)頁開發(fā)時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁,使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁程序。這些惡意網(wǎng)頁程序通常是JavaScript,但實際上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻擊成功后,攻擊者可能得到包括但不限于更高的權限(如執(zhí)行一些操作)、私密網(wǎng)頁內(nèi)容、會話和cookie等各種內(nèi)容。
以上就是Knife4j的請求示例當中有很多空白行的問題解決辦法的詳細內(nèi)容,更多關于Knife4j請求中有空白行的資料請關注腳本之家其它相關文章!
相關文章
Java中使用ForkJoinPool的實現(xiàn)示例
ForkJoinPool是一個功能強大的Java類,用于處理計算密集型任務,本文主要介紹了Java中使用ForkJoinPool的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-09-09
Windows環(huán)境下Java版本管理終極攻略(徹底告別JDK版本地獄)
JDK是Oracle公司提供的用于Java程序開發(fā)的完整軟件包,它是Java開發(fā)者不可或缺的核心工具,包含了編寫、編譯、調(diào)試和運行Java程序所需的一切組件,這篇文章主要介紹了Windows環(huán)境下Java版本管理終極攻略的相關資料,需要的朋友可以參考下2026-06-06
IDEA提示 add *** to custom tags問題及解決
文章介紹了如何在文檔注釋中添加自定義注解(@xxx),并提供了添加和刪除注解的方法,總結(jié)了個人經(jīng)驗,希望對大家有所幫助2024-12-12

