最近開始學(xué)習(xí)springboot,api doc 使用的是swagger2 ,使用jwt作為api保護(hù)仪或。期間遇到的一些問題在這里整理一下戚炫,希望能幫到大家。
JWT是一種用戶雙方之間傳遞安全信息的簡潔的猖毫、URL安全的表述性聲明規(guī)范保礼。JWT(Json Web Token)作為一個開放的標(biāo)準(zhǔn)(RFC 7519),定義了一種簡潔的甩挫、自包含的方法用于通信雙方之間以Json對象的形式進(jìn)行安全性信息傳遞贴硫,傳遞時有數(shù)字簽名所以信息時安全的,JWT使用RSA公鑰密鑰的形式進(jìn)行簽名伊者。
Swagger2英遭,它可以輕松的整合到Spring Boot中,并與Spring MVC程序配合組織出強(qiáng)大RESTful API文檔亦渗。它既可以減少我們創(chuàng)建文檔的工作量挖诸,同時說明內(nèi)容又整合入實現(xiàn)代碼中,讓維護(hù)文檔和修改代碼整合為一體法精,可以讓我們在修改代碼邏輯的同時方便的修改文檔說明税灌。另外Swagger2也提供了強(qiáng)大的頁面測試功能來調(diào)試每個RESTful API。具體效果如下圖所示:
我集成jwt的方式并不和網(wǎng)上很多的filter教程一致亿虽,我使用的Interceptor菱涤。具體繼承教程參考:
使用JWT設(shè)計SpringBoot項目api接口安全服務(wù)
說下問題吧:
1.創(chuàng)建token是密碼設(shè)置過于簡單,出現(xiàn)java.lang.IllegalArgumentException: secret key byte array cannot be null or empty. 異常
解決方案:修改密碼強(qiáng)度 wlt --> wlt-123
驗證通過洛勉。
這是由于jwt內(nèi)部參數(shù)驗證機(jī)制導(dǎo)致的問題粘秆。
2.如何解決jwt會將token放在head里,在使用swagger測試的時候并不方便的問題收毫。
這樣展示效果如圖:
總結(jié)
本文主要講解了本人在SpringBoot項目使用swagger暴露resftul接口并加入JWT維護(hù)接口安全性時遇到的問題和解決方案攻走。