179.7. 機密情報の隠蔽

Camel 2.12 以降で利用可能

デフォルトでは、Camel は URI を使用して設定されたエンドポイントなどの MBean を JMX に登録します。この設定では、パスワードなどの機密情報が含まれる場合があります。

この情報は、以下に示すように mask オプションを有効にすることで非表示にすることができます。

Java DSL を使用して、次のようにしてこれをオンにします。

  // only enable routes when Camel starts
  context.getManagementStrategy().getManagementAgent().setMask(true);

そして、Spring DSL から次のことを行います。

    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
        <jmxAgent id="agent" mask="true"/>
     ...
    </camelContext>

これにより、パスワードやパスフレーズなどのオプションを持つ URI がマスクされ、代わりの値として xxxxxx が使用されます。

179.7.1. マスクする JMX 属性と操作の宣言

org.apache.camel.api.management.ManagedAttribute および org.apache.camel.api.management.ManagedOperation では、属性 masktrue に設定して、この JMX 属性/操作の結果をマスクする必要があることを示すことができます (JMX エージェントで有効化されています。上記を参照してください)。

たとえば、camel-core org.apache.camel.api.management.mbean.ManagedEndpointMBean のデフォルトのマネージドエンドポイントでは、EndpointUri JMX 属性がマスクされていると宣言しています。

@ManagedAttribute(description = "Endpoint URI", mask = true)
String getEndpointUri();