在NiFi中,我可以在custom.properties文件中输入加密密码并在相应处理器的内存中解密吗?

In NiFi, can I enter encrypted password in the custom.properties file and decrypt it in-memory in the corresponding processor?

为了使流程和控制器服务环境不可知(以便从开发阶段转移到生产阶段很容易),我使用 variables/Expression 密码和用户名语言。并计划从 custom.properties 文件或进程组变量中读取它们 passwords/usernames。 直接在其中输入密码都不太舒服。所以想使用某种形式的加密,然后在需要的处理器中对其进行解密。(NIFI 可以在所有处理器的内存中对其进行解密吗?)

示例:如果我正在使用 JDBC 连接池,并且通过控制器服务连接到数据库的密码是“badPassword”。

在 custom.properties 文件中,

my.password.for.JDBC.connection.pool = 错误密码

而在密码控制器服务中,该值将是 ${ my.password.for.JDBC.connection.pool }

相同的示例可以应用于不同的处理器,例如 FTP、SFTP,或者调用具有基本授权令牌的 http 处理器。

有没有办法加密,在custom.properties文件或进程组变量中输入加密后的密码,在相应的处理器中解密

有一项 open Jira for this feature, and with the upcoming Apache NiFi Registry 的努力,流程版本控制将允许在 dev/test/prod 具有引用变量凭据的环境之间提升流程。但是,此时无法加密变量注册表值(您的 custom.properties 值)。