Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第74章 jasypt
jasypt コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.5 で利用可能
Jasypt は、暗号化と復号化を容易にする簡略化された暗号化ライブラリーです。Camel は Jasypt と統合し、プロパティー ファイルの機密情報を暗号化できるようにします。
camel-jasypt をクラスパスでドロップすると、暗号化された値は Camel によって自動的に復号化されます。これにより、人間はユーザー名とパスワードなどの機密情報を簡単に特定できなくなります。
Maven ユーザーは、このコンポーネントの
pom.xml に以下の依存関係を追加する必要があります。
Camel on EAP デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください。
ツール リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Jasypt コンポーネントは、値を暗号化または復号化するためのコマンドラインツールを少し提供します。
コンソールは構文と提供するオプションを出力します。
たとえば、値
tiger を暗号化するには、以下のパラメーターで実行します。apache camel kit で、lib フォルダーに移動し、以下の java cmd を実行します。<CAMEL_HOME> は、Camel ディストリビューションをダウンロードして展開します。
cd <CAMEL_HOME>/lib java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
以下の結果を出力します。
Encrypted text: qaEEacuW7BUti8LcMgyjKw==
Encrypted text: qaEEacuW7BUti8LcMgyjKw==
つまり、暗号化された表現の
qaEEacuW7BUti8LcMgyjKw== は、秘密 のマスターパスワードを知っている場合に tiger に復号化できます。ツールを再度実行すると、暗号化された値は別の結果を返します。ただし、値を復号すると、常に正しい元の値が返されます。
そのため、以下のパラメーターを使用して ツールを実行してテストできます。
cd <CAMEL_HOME>/lib java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
$ cd <CAMEL_HOME>/lib
$ java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
以下の結果を出力します。
Decrypted text: tiger
Decrypted text: tiger
次に、プロパティー ファイルで暗号化された値を使用するのが理想です。パスワード値が暗号化され、値に
ENC (value here)を囲むトークンがあることに注意してください。
refer to a mock endpoint name by that encrypted password here is a password which is encrypted
# refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
# here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
Camel 2.5 および 2.6 のツールの依存関係 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ツールには、接頭辞が
optional/ の camel-jasypt の MANIFEST.MF ファイルに登録されたクラスパスに以下の JAR が必要です。したがって、上記の java cmd が、オプション の ディレクトリーの Apache Distribution から必要な JAR を選択できる理由です。
jasypt-1.6.jar commons-lang-2.4.jar commons-codec-1.4.jar icu4j-4.0.1.jar
jasypt-1.6.jar commons-lang-2.4.jar commons-codec-1.4.jar icu4j-4.0.1.jar
Java 1.5 ユーザー
icu4j-4.0.1.jar は、JDK 1.5 で実行する場合にのみ必要になります。
この JAR は Apache Camel によって配布されず、手動でダウンロードして Camel ディストリビューションの
lib/optional ディレクトリーにコピーします。Apache Central Maven リポジトリー からダウンロードできます。
Camel 2.7 以降のツールの依存関係 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
jasypt 1.7 以降は完全にスタンドアロンになったため、追加の JAR は必要ありません。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のオプションは Jasypt コンポーネント専用です。
| 名前 | デフォルト値 | 型 | Description |
|---|---|---|---|
password
|
null
|
文字列
|
復号化に使用するマスターパスワードを指定します。このオプションは必須です。詳細は、こちらを参照してください。 |
algorithm
|
null
|
文字列
|
使用する任意のアルゴリズムの名前。 |
マスターパスワードの保護 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Jasypt が使用するマスターパスワードを提供する必要があります。これにより、値を復号できます。ただし、このマスターパスワードを開いた状態にすることは理想的な解決策ではない場合があります。そのため、JVM システムプロパティーまたは OS 環境設定として指定できます。これを選択すると、
パスワード オプションはこれを指示する接頭辞をサポートします。sysenv: 指定されたキーを使用して OS システム環境を検索することを意味します。sys: JVM システムプロパティーを検索することを意味します。
たとえば、アプリケーションを起動する前にパスワードを指定できます。
export CAMEL_ENCRYPTION_PASSWORD=secret
$ export CAMEL_ENCRYPTION_PASSWORD=secret
次に、起動スクリプトの実行など、アプリケーションを起動します。
アプリケーションが稼働している場合、環境の設定を解除できます。
unset CAMEL_ENCRYPTION_PASSWORD
$ unset CAMEL_ENCRYPTION_PASSWORD
パスワード オプションは、password=sysenv:CAMEL_ENCRYPTION_PASSWORD のように定義することが関係します。
Java DSL を使用した例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Java DSL では、
Jasypt PropertiesParser インスタンスとして設定し、以下のように Properties コンポーネントに設定する必要があります。
次に、プロパティーファイル
myproperties.properties には、以下のような暗号化された値が含まれます。パスワード値が暗号化され、値に ENC (value here)を囲むトークンがあることに注意してください。
refer to a mock endpoint name by that encrypted password here is a password which is encrypted
# refer to a mock endpoint name by that encrypted password
cool.result=mock:{{cool.password}}
# here is a password which is encrypted
cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
Spring XML の例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Spring XML では、以下に示す
JasyptPropertiesParser を設定する必要があります。次に、Camel Properties コンポーネントはプロパティーパーサーとして jasypt を使用するように指示されます。つまり、Jasypt はプロパティーで検索された値を復号化する機会を持ちます。
Properties コンポーネントは、以下に示す <
camelContext> タグ内で インライン化することもできます。propertiesParserRef 属性を使用して Jasypt を参照する方法に注意してください。
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
- ActiveMQ で暗号化されたパスワード: ActiveMQ はこの
camel-jasyptコンポーネントと同様の機能を持ちます。