Knife4j的請(qǐng)求示例當(dāng)中有很多空白行的問(wèn)題解決辦法
問(wèn)題描述:
按正常來(lái)說(shuō)不應(yīng)該有上方的空白,當(dāng)然如果只是查看我也不至于非要解決他,主要是假如接口是json傳參,調(diào)試界面都沒(méi)辦法修改參數(shù)…網(wǎng)上相關(guān)的資料又非常少,我別的項(xiàng)目引用的同樣的依賴并沒(méi)有出現(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()
//為當(dāng)前包路徑
.apis(RequestHandlerSelectors.basePackage("com.fiftyonetrust.zyy.stdc.admin.center.controller")).paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//頁(yè)面標(biāo)題
.title("構(gòu)建RESTful API").description("構(gòu)建RESTful API")
//版本號(hào)
.version("1.0")
//描述
.description("API 描述").build();
}
}
該配置主要解決doc.html 404無(wú)法訪問(wèn)的問(wèn)題。
@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)別的項(xiàng)目訪問(wèn)接口文檔并沒(méi)有這些錯(cuò)誤,而這個(gè)項(xiàng)目全是以下錯(cuò)誤信息:


解決過(guò)程:
剛開始我一直以為是Knife4j與security版本之間兼容問(wèn)題導(dǎo)致的,然后也詢問(wèn)了Knife4j官方人員,說(shuō)有史以來(lái)沒(méi)有出現(xiàn)過(guò)類似的情況。針對(duì)于這個(gè)問(wèn)題我也是排查了好幾天。
項(xiàng)目當(dāng)中使用了security,排查security的配置。


這里使用到了一個(gè)JwtAuthenticationTokenFilter過(guò)濾器,過(guò)濾器當(dāng)中有一行這個(gè)代碼注釋掉之后就可以了。

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

在網(wǎng)上查了關(guān)于這個(gè)Content-Security-Policy響應(yīng)頭的說(shuō)明,CSP相當(dāng)于前臺(tái)的白名單,用來(lái)限制網(wǎng)站內(nèi)部一些資源獲取的來(lái)源,如限制CSS、JS、圖片或者第三方鏈接等。
CSP的設(shè)置可以在一定程度上限制XSS攻擊,有2種方式可以設(shè)置。第一種通過(guò)設(shè)置HTTP響應(yīng)頭,另一種通過(guò)HTML的<meta>標(biāo)簽。
XSS攻擊通常指的是通過(guò)利用網(wǎng)頁(yè)開發(fā)時(shí)留下的漏洞,通過(guò)巧妙的方法注入惡意指令代碼到網(wǎng)頁(yè),使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁(yè)程序。這些惡意網(wǎng)頁(yè)程序通常是JavaScript,但實(shí)際上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻擊成功后,攻擊者可能得到包括但不限于更高的權(quán)限(如執(zhí)行一些操作)、私密網(wǎng)頁(yè)內(nèi)容、會(huì)話和cookie等各種內(nèi)容。
以上就是Knife4j的請(qǐng)求示例當(dāng)中有很多空白行的問(wèn)題解決辦法的詳細(xì)內(nèi)容,更多關(guān)于Knife4j請(qǐng)求中有空白行的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring實(shí)戰(zhàn)之使用Expression接口進(jìn)行表達(dá)式求值操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用Expression接口進(jìn)行表達(dá)式求值操作,結(jié)合實(shí)例形式分析了Spring操作Expression接口實(shí)現(xiàn)表達(dá)式運(yùn)算的操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-12-12
SpringBoot登錄驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了SpringBoot登錄驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
SpringBoot使用Thymeleaf模板引擎訪問(wèn)靜態(tài)html的過(guò)程
這篇文章主要介紹了SpringBoot使用Thymeleaf模板引擎訪問(wèn)靜態(tài)html的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
使用StringRedisTemplate操作Redis方法詳解
這篇文章主要為大家介紹了使用StringRedisTemplate操作Redis方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
springcloud 中 zuul 修改請(qǐng)求參數(shù)信息的方法
這篇文章主要介紹了springcloud 中 zuul 修改請(qǐng)求參數(shù)信息的方法,需要的朋友可以參考下2018-02-02
SpringBoot詳細(xì)講解通過(guò)自定義classloader加密保護(hù)class文件
這篇文章主要介紹了SpringBoot通過(guò)自定義classloader加密class文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
java項(xiàng)目啟動(dòng)失敗的問(wèn)題及解決
這篇文章主要介紹了java項(xiàng)目啟動(dòng)失敗的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Java編程實(shí)現(xiàn)驗(yàn)證哥德巴赫猜想
這篇文章主要介紹了Java編程實(shí)現(xiàn)驗(yàn)證哥德巴赫猜想,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
springboot整合過(guò)濾器實(shí)戰(zhàn)步驟
在項(xiàng)目開發(fā)過(guò)程中,過(guò)濾器或者攔截器幾乎是必用的,他可以很方便的完成類似日志處理、token驗(yàn)證等一系列操作,區(qū)別于業(yè)務(wù)接口,獨(dú)立進(jìn)行處理,感覺(jué)就是一種Aop思想。下面模擬請(qǐng)求接口前的token驗(yàn)證,進(jìn)行過(guò)濾器的實(shí)戰(zhàn)2022-04-04

