クラス UserCredentialsConnectionFactoryAdapter

java.lang.ObjectSE
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter
実装されているすべてのインターフェース:
jakarta.jms.ConnectionFactory, jakarta.jms.QueueConnectionFactory, jakarta.jms.TopicConnectionFactory, InitializingBean

public class UserCredentialsConnectionFactoryAdapter extends ObjectSE implements jakarta.jms.ConnectionFactory, jakarta.jms.QueueConnectionFactory, jakarta.jms.TopicConnectionFactory, InitializingBean
ターゲット JMS ConnectionFactory 用のアダプター。指定されたユーザー資格情報を、認証にも使用できるすべての標準メソッド(createConnection() および createContext())に適用します。つまり、ターゲット上で createConnection(username, password) または createContext(username, password) を暗黙的に呼び出します。その他のメソッドは、ターゲット ConnectionFactory の対応するメソッドに委譲されます。

ユーザー資格情報が構成されていないターゲット JNDI ConnectionFactory をプロキシするために使用できます。クライアントコードは、すべての createConnection() および createContext() 呼び出しでユーザー名とパスワードを渡すことなく、ConnectionFactory で動作できます。

次の例では、クライアントコードは、事前構成された "myConnectionFactory" を透過的に操作し、指定されたユーザー資格情報を使用して "myTargetConnectionFactory" に暗黙的にアクセスできます。

<bean id="myTargetConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jms/mycf"/>
</bean>

<bean id="myConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
  <property name="targetConnectionFactory" ref="myTargetConnectionFactory"/>
  <property name="username" value="myusername"/>
  <property name="password" value="mypassword"/>
</bean>

"username" が空の場合、このプロキシはターゲット ConnectionFactory の標準 createConnection() または createContext() メソッドに委譲するだけです。これを使用すると、特定のターゲット ConnectionFactory で必要な場合にユーザー資格情報を暗黙的に渡すオプションのためだけに、UserCredentialsConnectionFactoryAdapter Bean 定義を保持できます。

Spring Framework 5 の時点で、このクラスは JMS 2.0 JMSContext 呼び出しを委譲するため、実行時に JMS 2.0 API が存在する必要があります。それでも、アプリケーションのセットアップによって実際の JMS 2.0 呼び出しがトリガーされない限り、JMS 1.1 ドライバー(JMS 2.0 API にバインドされている)に対して実行できます。

導入:
1.2
作成者:
Juergen Hoeller, Stephane Nicoll
関連事項:
  • コンストラクターの詳細

    • UserCredentialsConnectionFactoryAdapter

      public UserCredentialsConnectionFactoryAdapter()
  • メソッドの詳細

    • setTargetConnectionFactory

      public void setTargetConnectionFactory(jakarta.jms.ConnectionFactory targetConnectionFactory)
      この ConnectionFactory が委譲するターゲット ConnectionFactory を設定します。
    • setUsername

      public void setUsername(StringSE username)
      このアダプターが接続の取得に使用するユーザー名を設定します。デフォルトは特定のユーザーなしです。
    • setPassword

      public void setPassword(StringSE password)
      このアダプターが接続の取得に使用するパスワードを設定します。デフォルトは特定のパスワードなしです。
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • setCredentialsForCurrentThread

      public void setCredentialsForCurrentThread(StringSE username, StringSE password)
      このプロキシと現在のスレッドのユーザー資格情報を設定します。指定されたユーザー名とパスワードは、この ConnectionFactory プロキシでの後続のすべての createConnection() 呼び出しに適用されます。

      これにより、静的に指定されたユーザー資格情報、つまり "username" および "password" Bean プロパティの値が上書きされます。

      パラメーター:
      username - 適用するユーザー名
      password - 適用するパスワード
      関連事項:
    • removeCredentialsFromCurrentThread

      public void removeCredentialsFromCurrentThread()
      現在のスレッドからこのプロキシのユーザー資格情報を削除します。静的に指定されたユーザー資格情報は、その後再び適用されます。
      関連事項:
    • createConnection

      public final jakarta.jms.Connection createConnection() throws jakarta.jms.JMSException
      現在スレッドにバインドされた資格情報があるかどうかを確認し、可能な場合はそれらを使用して、静的に指定されたユーザー名とパスワード(つまり、Bean プロパティの値)にフォールバックします。
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateConnection 
      例外:
      jakarta.jms.JMSException
      関連事項:
    • createConnection

      public jakarta.jms.Connection createConnection(StringSE username, StringSE password) throws jakarta.jms.JMSException
      呼び出しをターゲット ConnectionFactory に直接委譲します。
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateConnection 
      例外:
      jakarta.jms.JMSException
    • doCreateConnection

      protected jakarta.jms.Connection doCreateConnection(@Nullable StringSE username, @Nullable StringSE password) throws jakarta.jms.JMSException
      この実装は、ターゲット ConnectionFactory の createConnection(username, password) メソッドに委譲し、指定されたユーザー資格情報を渡します。指定されたユーザー名が空の場合、ターゲット ConnectionFactory の標準 createConnection() メソッドに委譲するだけです。
      パラメーター:
      username - 使用するユーザー名
      password - 使用するパスワード
      戻り値:
      接続
      例外:
      jakarta.jms.JMSException
      関連事項:
      • ConnectionFactory.createConnection(String, String)
      • ConnectionFactory.createConnection()
    • createQueueConnection

      public final jakarta.jms.QueueConnection createQueueConnection() throws jakarta.jms.JMSException
      現在スレッドにバインドされた資格情報があるかどうかを確認し、可能な場合はそれらを使用して、静的に指定されたユーザー名とパスワード(つまり、Bean プロパティの値)にフォールバックします。
      次で指定:
      インターフェース jakarta.jms.QueueConnectionFactorycreateQueueConnection 
      例外:
      jakarta.jms.JMSException
      関連事項:
    • createQueueConnection

      public jakarta.jms.QueueConnection createQueueConnection(StringSE username, StringSE password) throws jakarta.jms.JMSException
      呼び出しをターゲット QueueConnectionFactory に直接委譲します。
      次で指定:
      インターフェース jakarta.jms.QueueConnectionFactorycreateQueueConnection 
      例外:
      jakarta.jms.JMSException
    • doCreateQueueConnection

      protected jakarta.jms.QueueConnection doCreateQueueConnection(@Nullable StringSE username, @Nullable StringSE password) throws jakarta.jms.JMSException
      この実装は、ターゲット QueueConnectionFactory の createQueueConnection(username, password) メソッドに委譲し、指定されたユーザー資格情報を渡します。指定されたユーザー名が空の場合、ターゲット ConnectionFactory の標準 createQueueConnection() メソッドに委譲するだけです。
      パラメーター:
      username - 使用するユーザー名
      password - 使用するパスワード
      戻り値:
      接続
      例外:
      jakarta.jms.JMSException
      関連事項:
      • QueueConnectionFactory.createQueueConnection(String, String)
      • QueueConnectionFactory.createQueueConnection()
    • createTopicConnection

      public final jakarta.jms.TopicConnection createTopicConnection() throws jakarta.jms.JMSException
      現在スレッドにバインドされた資格情報があるかどうかを確認し、可能な場合はそれらを使用して、静的に指定されたユーザー名とパスワード(つまり、Bean プロパティの値)にフォールバックします。
      次で指定:
      インターフェース jakarta.jms.TopicConnectionFactorycreateTopicConnection 
      例外:
      jakarta.jms.JMSException
      関連事項:
    • createTopicConnection

      public jakarta.jms.TopicConnection createTopicConnection(StringSE username, StringSE password) throws jakarta.jms.JMSException
      呼び出しをターゲット TopicConnectionFactory に直接委譲します。
      次で指定:
      インターフェース jakarta.jms.TopicConnectionFactorycreateTopicConnection 
      例外:
      jakarta.jms.JMSException
    • doCreateTopicConnection

      protected jakarta.jms.TopicConnection doCreateTopicConnection(@Nullable StringSE username, @Nullable StringSE password) throws jakarta.jms.JMSException
      この実装は、ターゲット TopicConnectionFactory の createTopicConnection(username, password) メソッドに委譲し、指定されたユーザー資格情報を渡します。指定されたユーザー名が空の場合、ターゲット ConnectionFactory の標準 createTopicConnection() メソッドに委譲するだけです。
      パラメーター:
      username - 使用するユーザー名
      password - 使用するパスワード
      戻り値:
      接続
      例外:
      jakarta.jms.JMSException
      関連事項:
      • TopicConnectionFactory.createTopicConnection(String, String)
      • TopicConnectionFactory.createTopicConnection()
    • createContext

      public jakarta.jms.JMSContext createContext()
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateContext 
    • doCreateContext

      protected jakarta.jms.JMSContext doCreateContext(@Nullable StringSE username, @Nullable StringSE password)
    • createContext

      public jakarta.jms.JMSContext createContext(StringSE userName, StringSE password)
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateContext 
    • createContext

      public jakarta.jms.JMSContext createContext(StringSE userName, StringSE password, int sessionMode)
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateContext 
    • createContext

      public jakarta.jms.JMSContext createContext(int sessionMode)
      次で指定:
      インターフェース jakarta.jms.ConnectionFactorycreateContext 
    • doCreateContext

      protected jakarta.jms.JMSContext doCreateContext(@Nullable StringSE username, @Nullable StringSE password, int sessionMode)