代码之家  ›  专栏  ›  技术社区  ›  gstackoverflow

如何更改春季启动应用程序中的jasypt算法?

  •  0
  • gstackoverflow  · 技术社区  · 2 年前

    在我的Spring启动应用程序中,我有以下内容 application.yml 文件:

    jasypt:
      encryptor:
        password: secretKey
        algorithm: "PBEWithMD5AndDES"
        iv-generator-classname: org.jasypt.iv.NoIvGenerator
     my:
       ldap:
         user: CN=Administrator,CN=Users,DC=company,DC=com
         password: ENC(ObIbZYSJF60VnboZMRtlhj9a/+4B/kkP)
    

    配置:

    @Configuration
    @EnableConfigurationProperties(MyProperties::class)
    class MyConfig(
        private val myProperties: MyProperties,
    ) {...}
    

    ========================

    @ConfigurationProperties(prefix = "my.ldap")
    data class MyProperties(
       password: String
    )
    

    这个 上面的设置正在完全工作 但如果我想更改算法:

    jasypt:
      encryptor:
        password: secretKey
        iv-generator-classname: org.jasypt.iv.NoIvGenerator
    

    或者两者都有(生成器和算法)

     jasypt:
       encryptor:
         password: secretKey
    

    所以将使用默认算法 PBEWITHHMACSHA512ANDAES_256 org.jasypt.iv.RandomIvGenerator 但我收到一个错误:

    无法将“my.ldap.password”下的属性绑定到 java.lang.String:

    Property: my.ldap.user
    Value: "CN=Administrator,CN=Users,DC=company,DC=com"
    Origin: class path resource [application-local.yaml] - 5:11
    Reason: org.springframework.boot.context.properties.bind.BindException: Failed
    

    将“my.ldap.password”下的属性绑定到 java.lang.String

    enter image description here https://github.com/ulisesbocchio/jasypt-spring-boot

    根据上表,我预计我必须提供 仅有一个的 参数

    jasypt.encryptor.password
    

    但它不起作用。

    为什么会发生这种情况?

    0 回复  |  直到 2 年前
    推荐文章