Spring Cloud Config Server - 在何处设置encrypt.key以启用/加密端点

时间:2015-05-08 19:36:45

标签: spring-security encryption-symmetric spring-cloud

我有一个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放在配置文件中的位置。这是否有样品?

4 个答案:

答案 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]文件(或指定的替代名称)