Spring Cloud Config Server加密问题

天文K2

我们有一台Pivotal Cloud Foundry服务器,该服务器配置了带有加密密钥的Spring配置服务器。在相应的属性文件中(通过github),我们为一些简单的属性加上了{cipher}前缀,并且能够在应用程序中很好地获得这些值。但是我们最近注意到的挑战是,当我们有一个需要加密的base64数据时,spring加密会在base64数据的末尾截断尾随等号。而且,当我们的应用程序读取此数据时,由于缺少有效的base64(末尾的填充字符(等号)),因此无法解析该数据。我们尝试使用反斜杠转义等号,但仍然没有运气。我们只是看到两个反斜线,所以想知道是否有任何建议可以解决此问题。谢谢!

丹尼尔·米库萨(Daniel Mikusa)

据我所知,这里的问题似乎与的用法有关curl通过运行,我可以复制您看到的问题:

spring decrypt --key @${HOME}/server_rsa_no_eol.key "$(curl -H "Authorization: $(cf oauth-token)" https://config-server.example.com/encrypt -s -d 'VGVzdC0=')"

这用于curl命中加密端点并获取结果,并立即用解密spring decrypt如您所指示,此返回VGVzdC0

似乎这是一个卷曲问题,因为我可以在https://httpbin.org/post上发表相同的文章,并且得到相同的结果,VGVzdC0但不使用=

$ curl https://httpbin.org/post --data 'VGVzdC0='
{
  ...
  "form": {
    "VGVzdC0": ""
  },
  ...

有效的方法是,如果我对=字符进行url编码

$ curl https://httpbin.org/post --data 'VGVzdC0%3D'
{
  ...
  "form": {
    "VGVzdC0=": ""
  },
  ...

您也可以使用进行curlurl编码,--data-urlencode但是有一个陷阱。您必须在值前加上=所以这也有效

$ curl https://httpbin.org/post --data-urlencode '=VGVzdC0='
{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "VGVzdC0=": ""
  },
...

从curl手册页:

  --data-urlencode <data>
          (HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding.

          To be CGI-compliant, the <data> part should begin with a name followed by a separator and a content specification. The <data> part can be passed to curl using one of the following
          syntaxes:

          content
                 This will make curl URL-encode the content and pass that on. Just be careful so that the content doesn't contain any = or @ symbols, as that will then make the syntax match
                 one of the other cases below!

          =content
                 This will make curl URL-encode the content and pass that on. The preceding = symbol is not included in the data.

关键是最后一部分=content这将使curl url编码内容,并且=不包含前缀

如果我在上面重复测试,我将得到预期的结果VGVzdC0=

spring decrypt --key @${HOME}/server_rsa_no_eol.key "$(curl -H "Authorization: $(cf oauth-token)" https://config-server.example.com/encrypt -s --data-urlencode '=VGVzdC0=')"

顺便说一句,您还可以选择easy选项并安装Spring Boot CLI + Spring Cloud Extension。然后,您可以spring encrypt --key @${HOME}/server_rsa_no_eol.key 'VGVzdC0='得到正确的值。这确实意味着您需要在本地计算机上拥有或不拥有密钥的副本。

brew install springboot
spring install org.springframework.cloud:spring-cloud-cli:2.2.1.RELEASE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Cloud Config Server纯文本

来自分类Dev

Spring Cloud Config Globals

来自分类Dev

外部化Spring Cloud Data Flow Config-Spring Cloud Config Server

来自分类Dev

外部化Spring Cloud Data Flow Config-Spring Cloud Config Server

来自分类Dev

没有Spring Boot的Spring Cloud Config Server

来自分类Dev

Spring Config Server Vault 后端:cloud.config.server.vault 或 cloud.vault

来自分类Dev

spring cloud config clone-on-start http.postBuffer 问题

来自分类Dev

Spring Cloud Config Server-占位符标签

来自分类Dev

使用配置文件禁用Spring Cloud Server Config?

来自分类Dev

Spring Cloud Config Server中配置文件的模式匹配

来自分类Dev

如何从Spring Cloud Config Server设置系统变量

来自分类Dev

Spring Cloud Config Server - 预期的内存占用似乎很大

来自分类Dev

Spring Cloud Config端口冲突

来自分类Dev

与Spring Cloud Config共享的属性

来自分类Dev

与Spring Cloud Config共享的属性

来自分类Dev

其他程序语言客户端如何使用Spring Cloud Config Server?

来自分类Dev

Spring Cloud Config Server-安全性详细信息

来自分类Dev

微服务不会从spring-cloud-config-server微服务获取属性

来自分类Dev

在Spring Cloud Config Server中组织大量的应用程序配置

来自分类Dev

使带有子上下文路径的嵌入式Spring Cloud Config Server

来自分类Dev

Spring Cloud Config Server-MultipleJGitEnvironmentRepository:无法为主远程获取远程

来自分类Dev

Spring Cloud Config Server-如何下载二进制文件

来自分类Dev

Spring Cloud Config Server 也可以将配置更新推送到远程 git repo 吗?

来自分类Dev

没有 Spring Cloud Config Server 的 RefreshScope 运行时配置

来自分类Dev

无法通过spring.cloud.config.enabled禁用Spring Cloud Config:false

来自分类Dev

Spring Cloud Config Eureka优先方法不起作用

来自分类Dev

Spring Cloud Config Encryption API最后会忽略特殊字符

来自分类Dev

Spring Cloud Config-Git存储库错误

来自分类Dev

spring-cloud-config-aws-kms NoUniqueBeanDefinitionException: defaultTextEncryptor, kmsTextEncryptor

Related 相关文章

  1. 1

    Spring Cloud Config Server纯文本

  2. 2

    Spring Cloud Config Globals

  3. 3

    外部化Spring Cloud Data Flow Config-Spring Cloud Config Server

  4. 4

    外部化Spring Cloud Data Flow Config-Spring Cloud Config Server

  5. 5

    没有Spring Boot的Spring Cloud Config Server

  6. 6

    Spring Config Server Vault 后端:cloud.config.server.vault 或 cloud.vault

  7. 7

    spring cloud config clone-on-start http.postBuffer 问题

  8. 8

    Spring Cloud Config Server-占位符标签

  9. 9

    使用配置文件禁用Spring Cloud Server Config?

  10. 10

    Spring Cloud Config Server中配置文件的模式匹配

  11. 11

    如何从Spring Cloud Config Server设置系统变量

  12. 12

    Spring Cloud Config Server - 预期的内存占用似乎很大

  13. 13

    Spring Cloud Config端口冲突

  14. 14

    与Spring Cloud Config共享的属性

  15. 15

    与Spring Cloud Config共享的属性

  16. 16

    其他程序语言客户端如何使用Spring Cloud Config Server?

  17. 17

    Spring Cloud Config Server-安全性详细信息

  18. 18

    微服务不会从spring-cloud-config-server微服务获取属性

  19. 19

    在Spring Cloud Config Server中组织大量的应用程序配置

  20. 20

    使带有子上下文路径的嵌入式Spring Cloud Config Server

  21. 21

    Spring Cloud Config Server-MultipleJGitEnvironmentRepository:无法为主远程获取远程

  22. 22

    Spring Cloud Config Server-如何下载二进制文件

  23. 23

    Spring Cloud Config Server 也可以将配置更新推送到远程 git repo 吗?

  24. 24

    没有 Spring Cloud Config Server 的 RefreshScope 运行时配置

  25. 25

    无法通过spring.cloud.config.enabled禁用Spring Cloud Config:false

  26. 26

    Spring Cloud Config Eureka优先方法不起作用

  27. 27

    Spring Cloud Config Encryption API最后会忽略特殊字符

  28. 28

    Spring Cloud Config-Git存储库错误

  29. 29

    spring-cloud-config-aws-kms NoUniqueBeanDefinitionException: defaultTextEncryptor, kmsTextEncryptor

热门标签

归档