javascript
使用Spring Boot和Spring Security验证JWT
對于我當前的項目,我將使用Spring Boot設置REST API (最有可能使用BoxFuse運行)。 為了能夠使用API??端點,應用程序將檢查傳入的請求是否具有較早提供的有效JWT令牌 (由我信任的API服務提供)。
為了實現此功能,我想利用Spring Security,因為它與Spring Boot非常吻合。 在搜尋有關此組合的信息時,我遇到了一個很好地描述背景信息的網站 ,但沒有提供使它運行所需的所有必要資源。 因此,經過更多調查和反復試驗后,我終于找到了一個可行的解決方案。 請注意,在我的情況下,我僅需要驗證傳入的令牌,而無需創建或提供新的令牌。
示例的源代碼可在此處在GitLab上找到。 該示例應用程序具有一個稱為MainController的REST控制器。 啟動應用程序后(通過運行Application .main方法),您可以使用以下地址訪問REST端點: http:// localhost:8888 / hello?name = PalmApps 。 如您所見,如果在瀏覽器中嘗試執行此操作,則會收到HTTP 401錯誤:
要訪問端點,您將需要提供JWT令牌,以便可以通過JwtAuthenticationFilter進行訪問 。 要生成有效令牌,請打開類JwtTokenGenerator的源并運行'main'方法,該方法將在控制臺中打印令牌:
復制令牌并打開一個工具,您可以使用該工具發送HTTP請求,并將令牌添加到標頭中,例如Postman :
有了令牌后,您將看到預期的輸出:
{"id": 2,"content": "Hello, PalmApps!" }如果您通過POST請求訪問端點http:// localhost:8888 / me (仍帶有“ Authorization”標頭),則將以JSON格式獲取Principal對象的詳細信息:
{"details": null,"authorities": [{"authority": "admin"}],"authenticated": true,"principal": {"username": "Pascal","token": "eyJhbGciOiJIUzUxMeJ9.eyJzdwIiOi....m72LpFADA","authorities": [{"authority": "admin"}],"password": null},"credentials": null,"name": "Pascal" }返回對象中的“主要”字段是我們的AuthenticatedUser 。 如果我們想從我們的JWT中獲取更多信息,那么我們可以簡單地將其添加到該對象中,并將其填充到JwtAuthenticationProvider中 。
翻譯自: https://www.javacodegeeks.com/2016/05/validating-jwt-spring-boot-spring-security.html
總結
以上是生活随笔為你收集整理的使用Spring Boot和Spring Security验证JWT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos攻击会怎么样(ddos攻击真的吗
- 下一篇: spring tiles_Spring