我有一个Spring Cloud Config应用程序,其中包含Spring Cloud Security依赖项。我正试图点击/ encrypt端点来加密密码。
根据http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_key_management的文档,我认为我需要使用“encrypt.key”设置对称密钥。但我无法弄清楚在哪里放这个;我试过的所有组合导致{“description”:“没有为加密服务安装密钥”,“status”:“NO_KEY”}当我尝试POST /加密时。
如果我将一个密钥发送到/ key,/ encrypt可以正常工作,所以我非常确定其他所有内容都已正确设置。它也可以使用环境变量ENCRYPT_KEY或使用系统属性encrypt.key正常工作。我只是无法弄清楚将encrypt.key放在配置文件中的位置。这是否有样品?
答案 0 :(得分:4)
感谢@pVilaca,这确实是文档所说的,但是在application.properties或application.yml中设置密钥不会起作用。
通过实验,我发现可以设置encrypt.key属性的唯一地方是ENCRYPT_KEY环境变量,系统属性,bootstrap.properties,bootstrap.yml或调用/ key端点。
不确定为什么application.properties或application.yml在这种情况下不起作用。设置此密钥必须对启动过程产生比对其更大的影响。
答案 1 :(得分:2)
将Spring Cloud Version设置为'Brixton.SR5'对我有用。出于某种原因,在以后的Spring Cloud Version中的application.properties/yml或bootstrap.properties / mysl中设置'encrypt.key'不再有效。
答案 2 :(得分:2)
检查pom.xml文件的属性标记。如果您使用的是Dalston的第2版或第3版,请将其更改为:
<spring-cloud.version>Dalston.SR1</spring-cloud.version>
它应该工作正常。在我的情况下,我使用版本3并将其更改为版本1解决了我的问题。
参考: https://github.com/spring-cloud/spring-cloud-config/issues/767
答案 3 :(得分:1)
如果您使用带有弹簧靴的弹簧云,这就是您提到的文档中描述的方法,您可以使用两个主要的&#39;属性文件。
自举。[特性,YML]
要修改启动行为,您可以使用bootstrap.properties更改配置服务器的位置(例如application.properties,但适用于应用程序上下文的引导阶段)
应用。[特性,YML]
&#34;应用程序&#34;被注入为&#34; spring.config.name&#34;在SpringApplication中(即通常&#34;应用程序&#34;在常规Spring Boot应用程序中)
来源:Spring Cloud Config Documentation
因此,在应用程序中设置encrypt.key
就足够了。[properties,yml]文件(或指定的替代名称)