第 168 章 Jasypt 组件


从 Camel 2.5 开始提供

Jasypt 是一个简化的加密库,可以轻松地加密和解密。Camel 与 Jasypt 集成,以允许 加密 属性文件中的敏感信息。在类路径上丢弃 camel-jasypt,这些加密值将自动被 Camel 解密。这样可确保人类眼于不容易发现敏感信息,如用户名和密码。

如果使用 Maven,则需要将此组件的 pom.xml 添加以下依赖项:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jasypt</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

如果使用 Apache Karaf 容器,则需要将此组件的 pom.xml 添加以下依赖项:

<dependency>
  <groupId>org.apache.karaf.jaas</groupId>
  <artifactId>org.apache.karaf.jaas.jasypt</artifactId>
  <version>x.x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

168.1. 工具

Jasypt 组件提供了一些命令行工具来加密或解密值。

控制台输出语法及其提供的选项:

Apache Camel Jasypt takes the following options

  -h or -help = Displays the help screen
  -c or -command <command> = Command either encrypt or decrypt
  -p or -password <password> = Password to use
  -i or -input <input> = Text to encrypt or decrypt
  -a or -algorithm <algorithm> = Optional algorithm to use

例如,要使用 以下参数 加密运行的值:在 apache camel kit 中,您将 cd 到 lib 文件夹,并运行以下 java cmd,其中 & lt;CAMEL_HOME > 是您下载并提取 Camel 发行版本的位置。

$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger

哪些输出结果

Encrypted text: qaEEacuW7BUti8LcMgyjKw==

这意味着,如果您知道 secret 的 master 密码,加密表示 qaEEacuW7BU ti 8LcMgyjKw== 可以被解密。
如果您再次运行该工具,则加密的值将返回不同的结果。但是,解密该值将始终返回正确的原始值。

因此,您可以使用以下参数运行工具来测试它:

$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==

哪些输出结果如下:

Decrypted text: tiger

然后,在 Properties 文件中使用这些加密值。注意如何加密密码值,并且值将令牌周围为 ENC (这里的值)

提示

在运行 jasypt 工具时,如果您跨越 java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/StandardPBEStringEncryptor,这意味着您必须在您的类路径中包含 jasypt7.12.jar。将 jar 添加到 classpath 的示例,如果您要以 java -jar …​ 的身份运行,可以将 jasypt7.12.jar 复制到 $JAVA_HOME\jre\lib\ext。后者可以使用 -cp 将 jasypt7.12.jar 添加到 classpath 中,在这种情况下,您应该提供 main 类来执行 eg: java -cp jasypt-1.9.2.jar:camel-jasypt-2.18.2.jar org.apache.camel.component.jasypt.Main -c encrypt -p secret -i tiger

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.