我有一个带有Spring Cloud Security依赖性的Spring Cloud Config应用程序。我正在尝试点击/加密端点以加密密码。
根据http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_key_managemention的文档,我相信我需要使用" Encrypt.key"。但是我不知道把它放在哪里。我尝试过的所有组合都会在{" description":"没有安装键以进行加密服务","状态":" no_key"}时,当我尝试发布到/加密时。
如果我将键发布到/键,则/加密功能非常完美,因此我很确定其他所有内容都正确设置了。使用环境变量Encrypt_key或使用System属性Encrypt.key,它也可以正常工作。我只是无法弄清楚将gent.ke放置在配置文件中的位置。是否有样本?
感谢@pvilaca,这确实是文档所说的,但是设置了应用程序中的密钥。properties或application.yml不起作用。
通过实验,我发现您唯一可以设置encrypt.key属性的地方是encrypt_key环境变量,系统属性,bootstrap.properties,bootstrap.yml或调用/键端点。
不确定为什么应用程序或应用程序在这种情况下不起作用。设置此密钥必须比出现的启动过程更大。
将弹簧云版本设置为'brixton.sr5'为我工作。由于某些原因,在application.properties/yml或Bootstrap.properties/yml中设置" Encrypt.Key",以后的Spring Cloud版本不再起作用。
检查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
如果您将Spring Cloud与Spring Boot一起使用,这是您提到的文档中描述的方法,您已经有两个"主要"属性文件。
-
bootstrap。[properties,yml]
要修改启动行为,您可以使用Bootstrap.properties(例如Application.Properties,但对于应用程序上下文的Bootstrap阶段)来更改配置服务器的位置)
-
应用程序。[属性,YML]
在springapplication中将"应用程序"注入为" spring.config.name"(即常规Spring Boot应用中的通常"应用程序")
来源:春季云配置文档
因此,在您的应用程序中设置encrypt.key
应该足够。[properties,yml]文件(或替代名称,如果指定了)