2.52. Jasypt


Jasypt を使用したセキュリティー

2.52.1. 含まれるもの

使用方法と設定の詳細は、上記リンクを参照してください。

2.52.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jasypt</artifactId>
</dependency>

2.52.3. 使用方法

Camel Quarkus での Jasypt の設定は、設定プロパティー によって決まります。

設定プロパティー quarkus.camel.jasypt.password を使用して、Jasypt 復号化のマスターパスワードを提供することが、最低限必要となります。

以下に説明する quarkus.camel.jasypt オプションを使用して、暗号化アルゴリズムやその他の Jasypt 設定を選択できます。

デフォルトでは、Camel JasyptPropertiesParser または PropertiesComponent を設定するためにカスタムコードを記述する必要はありません。これは自動的に行われます。

application.properties に追加された Camel 設定プロパティーはすべて、Jasypt で保護できます。値の暗号化は、JBang で実行できるユーティリティーがあります。

jbang org.apache.camel:camel-jasypt:{camel-version} -c encrypt -p secret-password -i "Some secret content"
重要

デフォルト (PBEWithMD5AndDES) とは異なる Jasypt アルゴリズムを使用する場合は、暗号化で使用する正しいアルゴリズムを設定するために、-a (アルゴリズム)、-riga (IV ジェネレーターアルゴリズム)、および -rsga (Salt ジェネレーターアルゴリズム) 引数を指定する必要があります。指定しない場合、アプリケーションは設定値を復号化できません。

開発モードで実行している場合は、Dev UI を開き、Camel Jasypt ペインの 'ユーティリティー' リンクをクリックします。次に、'Decrypt' アクションまたは 'Encrypt' アクションのいずれかを選択し、テキストを入力して送信ボタンをクリックします。アクションの結果は、クリップボードにコピーするためのボタンとともに出力されます。

設定プロパティーは、ENC() で囲まれた暗号化された値を使用して application.properties に追加できます。以下はその例です。

my.secret = ENC(BoDSRQfdBME4V/AcugPOkaR+IcyKufGz)

Camel ルートでは、標準のプレースホルダー構文を使用してプロパティー名を参照でき、その値は復号化されます。

public class MySecureRoute extends RouteBuilder {
    @Override
    public void configure() {
        from("timer:tick?period=5s")
            .to("{{my.secret}}");
    }
}
ヒント

Camel では、プロパティー値の末尾に .secret を付けることで、セキュリティー上の機密設定をマスクする機能を使用できます。また、camel.main.autoConfigurationLogSummary = false の設定で、起動設定の概要を無効にすることもできます。

2.52.3.1. 暗号化された設定の注入

@ConfigProperty アノテーションを使用して、暗号化された設定を Camel ルートまたは CDI Bean に注入できます。

@ApplicationScoped
public class MySecureRoute extends RouteBuilder {
    @ConfigInject("my.secret")
    String mySecret;

    @Override
    public void configure() {
        from("timer:tick?period=5s")
            .to(mySecret);
    }
}
2.52.3.1.1. 代替設定ソースの保護

シークレットの設定を application.properties とは別のファイルに保存したい場合は、quarkus.config.locations 設定オプションを使用して追加の設定ファイルを指定できます。

ネイティブモードでは、追加の設定ファイルリソースパスも quarkus.native.resources.includes に追加する必要があります。

2.52.3.1.2. Jasypt 設定の細かい制御

デフォルト設定よりも細かく Jasypt 設定を制御する必要がある場合は、次のオプションを使用できます。

2.52.3.1.2.1. JasyptConfigurationCustomizer

Jasypt EnvironmentStringPBEConfig をカスタマイズするには、JasyptConfigurationCustomizer クラスを実装します。

package org.acme;

import org.apache.camel.quarkus.component.jasypt.JasyptConfigurationCustomizer;
import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig;
import org.jasypt.iv.RandomIvGenerator;
import org.jasypt.salt.RandomSaltGenerator;

public class JasyptConfigurationCustomizer implements JasyptConfigurationCustomizer {
    public void customize(EnvironmentStringPBEConfig config) {
        // Custom algorithms
        config.setAlgorithm("PBEWithHmacSHA256AndAES_256");
        config.setSaltGenerator(new RandomSaltGenerator("PKCS11"));
        config.setIvGenerator(new RandomIvGenerator("PKCS11"));
        // Additional customizations...
    }
}

application.properties に、quarkus.camel.jasypt.configuration-customizer-class-name 設定プロパティーを追加します。

quarkus.camel.jasypt.configuration-customizer-class-name = org.acme.MyJasyptEncryptorCustomizer
2.52.3.1.2.2. 自動 Jasypt 設定の無効化

'classic' Java DSL 方式を使用して Camel Jasypt を設定する場合は、quarkus.camel.jasypt.enabled = false で自動設定を無効にできます。

これにより、Camel JasyptPropertiesParserPropertiesComponent の手動設定が可能になります。

注記

このモードでは、@ConfigProperty アノテーションを使用して暗号化された設定プロパティーを注入することはできません。

import org.apache.camel.CamelContext;
import org.apache.camel.component.jasypt.JasyptPropertiesParser;
import org.apache.camel.component.properties.PropertiesComponent;

public class MySecureRoute extends RouteBuilder {
    @Override
    public void configure() {
        JasyptPropertiesParser jasypt = new JasyptPropertiesParser();
        jasypt.setPassword("secret");

        PropertiesComponent component = (PropertiesComponent) getContext().getPropertiesComponent();
        jasypt.setPropertiesComponent(component);
        component.setPropertiesParser(jasypt);

        from("timer:tick?period=5s")
            .to("{{my.secret}}");
    }
}
注記

PropertiesComponentsetLocation(…​) を呼び出し、classpath: 接頭辞を使用してカスタム設定ファイルの場所を指定する場合、そのファイルを quarkus.native.resources.includes に追加してネイティブモードでのロードを可能にする必要があります。

2.52.4. 追加の Camel Quarkus 設定

Expand
設定プロパティーデフォルト

quarkus.camel.jasypt.enabled

このオプションを false に設定すると、Quarkus SmallRye 設定との Jasypt 統合が無効になります。ただし、JasyptPropertiesParser と PropertiesComponent を手動で設定する '従来' の方法で、Camel を使用して Jasypt を手動で設定することもできます。詳細は、使用方法のセクションを参照してください。

boolean

true

quarkus.camel.jasypt.algorithm

復号化に使用するアルゴリズム。

string

PBEWithMD5AndDES

quarkus.camel.jasypt.password

Jasypt が設定値を復号化するために使用するマスターパスワード。このオプションは、マスターパスワードの検索動作に影響する接頭辞をサポートします。

sys: は、JVM システムプロパティーから値を検索します。sysenv: は、指定されたキーを使用して OS システム環境から値を検索します。

string

 

quarkus.camel.jasypt.random-iv-generator-algorithm

指定されたアルゴリズムを使用して、RandomIvGenerator で Jasypt StandardPBEStringEncryptor を設定します。

string

SHA1PRNG

quarkus.camel.jasypt.random-salt-generator-algorithm

指定されたアルゴリズムを使用して、RandomSaltGenerator で Jasypt StandardPBEStringEncryptor を設定します。

string

SHA1PRNG

quarkus.camel.jasypt.configuration-customizer-class-name

org.apache.camel.quarkus.component.jasypt.JasyptConfigurationCustomizer 実装の完全修飾クラス名。これにより、Jasypt 設定を完全に制御するオプション機能が提供されます。

string

 

ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る