Java:从 yaml 配置文件读取公钥时出现问题

标签 java yaml

我有一个 yaml 配置文件,它存储 rsa 公钥

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"

我可以像这样访问它:StringsigningKey = settings.get("signing_key");

当我尝试使用该公钥验证 JWT token 时,它会抛出 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 中使用“">”将会得到一堆用空格连接的行,而不是换行符,您可能需要打印出您获得的 key 以查看实际获得的内容。

如果是这种情况,您可以应用replaceAll 来获取您期望的结果。

http://yaml.org/spec/1.2/spec.html#id2760844

关于Java:从 yaml 配置文件读取公钥时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50282066/

相关文章:

Java Swing - 拖放 drawString 文本

azure - 如何解决 'Unexpected value & mapping error in YAML file (Azure DevOps)'

html - 如何将我的 YAML 标题置于 R markdown html 文档的中心?

amazon-web-services - 将事件规则负载配置为参数化存储桶

python - 解析嵌套的自定义 yaml 标签

amazon-web-services - 使用云形成模板创建 DynamoDB 时遇到问题。以及如何在 YAML CF 中定义属性 Boolean、List 和 Map

java - 比较两个列表并从一个列表中删除重复项

java - Android Java R.layout.balloon_overlay 无法解析或不是字段 - android 错误

java - 并行 TestNG - cucumber.runtime.CucumberException : No qualifying bean of type 'com.hooks.CustomHook' available

java - Java中如何比较两个相同对象的数据