我目前正在創建一個與 spring security JWT 一起使用的 Java Spring 應用程式。我到處查看和閱讀有關“秘密字串”的資訊,它說應該在生產中進行更改。就像我的application.properties中的這一行:security.jwt.secret="this-is-a-512-bit-key-used-for-signing-jwt-tokens-that-should-be-changed-production"
以及在 stackoverflow 問題中與此相關的問題:How to include jwt secret in application.yaml for Java Spring。
我的問題是,該字串在生產中應該變成什么?我應該在 SecurityConfig 類的某個地方生成它嗎?或者我應該生成一個 512 位字串并將其粘貼到 application.properties 檔案中?
提前致謝。
uj5u.com熱心網友回復:
不應將機密添加到您的常規application.properties
檔案中,因為這將被檢查到您的版本控制系統中。有多種方法可以將配置外部化,但最簡單的方法通常是定義環境變數。
在您的情況下,您需要一個名為的環境變數SECURITY_JWT_SECRET
,Spring Boot 會自動選擇它。
uj5u.com熱心網友回復:
更改 Spring 應用程式屬性的一種方法是使用 Spring Cloud Config。基本上,您的配置位于 GitHub 存盤庫中,一旦您進行修改,Spring 云配置服務器就會將其傳播到通過 application.properties 參考它的其他應用程式。
https://cloud.spring.io/spring-cloud-config/reference/html/
uj5u.com熱心網友回復:
我將分享它是如何在我們的應用程式中完成的,我認為這是存盤憑據的標準方式之一。也可能有其他方法。
- 在屬性中存盤令牌或憑據并不理想
- 我們可以將令牌外部化到 Vault 或配置服務器中
- 當服務器啟動時,spring 應用程式可以獲取屬性
- 對保險庫的訪問受到控制
由于我們在不同環境中擁有不同的 Vault 服務器,我們可以在運行時存盤和更改令牌并重繪 應用程式。
關于生成 jwt 令牌,它應該有一些到期時間并定期重繪 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470358.html
上一篇:如何按SKU而不是ID洗掉一行?