[英]Java: Problems reading a public key from a yaml config file
我有一個存儲rsa公鑰的yaml配置文件
http_authenticator:
type: jwt
challenge: false
config:
signing_key: >
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApJubKdzjmxriryviTEPN
85qX8SzcDbseBjJXJzrt3Xn0mk7+7ZxWDnB5Qh/TvZoHGOcaVeoRIzBi1AdX20az
x7oAzfMLI48sDEptwJgd87Mg6UmvXlPOkvRypUSP8pFrOUg+aQ75qRsQkXBBWMIO
qBZiDXVrMHY1+Q1LOJR1aWFjIlL1WNZecTNJ9UfPhjxW7WJRmI3/EXPbD/OEeC7J
mD/nifofYUQUavggcirKI0KM17ENLdyZy3aWfpKOXqZJByfbp5AXmWoWcNZqsiHy
KL/sK/nmX86jwKRHvIOQv9IBlPCNSxNr6IQox/BHqZssvY2J65UHOaTJ408x7IQT
FQIDAQAB
-----END PUBLIC KEY-----
jwt_header: "Authorization"
jwt_url_parameter: null
cookieName: "Cookie"
cookieHeaderName: "jwt_token"
我可以這樣訪問它: String signingKey = settings.get("signing_key");
當我嘗試使用該公鑰驗證JWT令牌時,它將引發InvalidKeyException
。
但是,如果我這樣在代碼中對字符串進行硬編碼,則可以正常工作!
String signingKey = "-----BEGIN PUBLIC KEY-----\n" +
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApJubKdzjmxriryviTEPN\n" +
"85qX8SzcDbseBjJXJzrt3Xn0mk7+7ZxWDnB5Qh/TvZoHGOcaVeoRIzBi1AdX20az\n" +
"x7oAzfMLI48sDEptwJgd87Mg6UmvXlPOkvRypUSP8pFrOUg+aQ75qRsQkXBBWMIO\n" +
"qBZiDXVrMHY1+Q1LOJR1aWFjIlL1WNZecTNJ9UfPhjxW7WJRmI3/EXPbD/OEeC7J\n" +
"mD/nifofYUQUavggcirKI0KM17ENLdyZy3aWfpKOXqZJByfbp5AXmWoWcNZqsiHy\n" +
"KL/sK/nmX86jwKRHvIOQv9IBlPCNSxNr6IQox/BHqZssvY2J65UHOaTJ408x7IQT\n" +
"FQIDAQAB\n" +
"-----END PUBLIC KEY-----";
如何確保yaml配置的行為與硬編碼的行為相同?
可以肯定的是,在YAML中使用“>”將使您得到一堆由空格而不是換行符代替的行,您可能希望打印出獲得的密鑰以查看實際獲得的密鑰。
在這種情況下,您可以應用replaceAll來獲取期望的結果。
使用文字塊標量樣式|
而不是折疊的>
:
signing_key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApJubKdzjmxriryviTEPN
85qX8SzcDbseBjJXJzrt3Xn0mk7+7ZxWDnB5Qh/TvZoHGOcaVeoRIzBi1AdX20az
x7oAzfMLI48sDEptwJgd87Mg6UmvXlPOkvRypUSP8pFrOUg+aQ75qRsQkXBBWMIO
qBZiDXVrMHY1+Q1LOJR1aWFjIlL1WNZecTNJ9UfPhjxW7WJRmI3/EXPbD/OEeC7J
mD/nifofYUQUavggcirKI0KM17ENLdyZy3aWfpKOXqZJByfbp5AXmWoWcNZqsiHy
KL/sK/nmX86jwKRHvIOQv9IBlPCNSxNr6IQox/BHqZssvY2J65UHOaTJ408x7IQT
FQIDAQAB
-----END PUBLIC KEY-----
這樣可以保留換行符。 另請參閱鏈接@clement。
有關引用樣式的概述,您可能需要閱讀這篇文章: http : //blogs.perl.org/users/tinita/2018/03/strings-in-yaml---to-quote-or-not-to -quote.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.