在我的春季申请中,我必须提供具有格式的证书
-----BEGIN CERTIFICATE-----
...
ZSBJb1QgSHViIENBIENlcnQgVGVzdCBPbmx5MB4XDTIyMDgwNDEzMjg1MVoXDTIy
MDkwMzEzMjg1MVowFDESMBAGA1UEAwwJamF2YS1zaW0xMIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEA1BHjgtcqmFP+TUdfBYmGU/CqYfEEtD6XaVI8BpJI
yx7y58aSnoPWxek8iM86PL8E8RtMKGZkB29JSLp7BIWuEAgkSZYbtN/cmTCT0r9c
...
-----END CERTIFICATE-----
虽然我可以通过在所有行尾添加
\n\
在应用程序属性中进行设置
如果我将其设置为覆盖属性中的值,它不起作用(BouncyCastle 无法从中创建证书):
我还尝试用
替换换行符那么如何正确覆盖这个属性。
解决这个问题的方法是引用我的存储库外部的 application.yml 文件。
我使用的是 Mac,因此这些说明特定于该环境。
创建外部应用程序.yml
创建一个目录来包含应用程序设置:
mkdir ~/MyApp_appplication_settings
在该目录中创建 application.yml
vim ~/MyApp_appplication_settings/application.yml
将私钥添加到application.yml
certificate.public-key: |-
-----BEGIN CERTIFICATE-----
... the cert data ...
-----END CERTIFICATE-----
更新 IntelliJ 中的运行/调试配置以使用外部 application.yml
spring.config.additional-location
,值为 file:/Users/<your-user-directory>/MyApp_appplication_settings/
<your-user-directory>
替换为您的主目录的名称file:
后面的目录不存在,应用程序将无法启动。 如果您希望应用程序无论如何都启动,您可以在前面添加 optional:
。您现在应该能够启动您的应用程序,并且现在应该加载证书。
顺便说一下,您也可以通过这种方式使用外部配置文件。
application-my-profile.yml
的文件
my-profile
可以是任何你想要的my-profile
运行应用程序时,
application-my-profile.yml
中的设置也将被加载。
如果您对于不同的环境有不同的凭据,您可能需要使用此功能。