クラス UserCredentialsDataSourceAdapter

java.lang.ObjectSE
org.springframework.jdbc.datasource.DelegatingDataSource
org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter
実装されているすべてのインターフェース:
WrapperSE, CommonDataSourceSE, DataSourceSE, InitializingBean
既知の直属サブクラス
IsolationLevelDataSourceAdapter

public class UserCredentialsDataSourceAdapter extends DelegatingDataSource
ターゲット JDBC DataSourceSE のアダプター。指定されたユーザー資格情報をすべての標準 getConnection() 呼び出しに適用し、ターゲットで getConnection(username, password) を暗黙的に呼び出します。他のすべてのメソッドは、ターゲット DataSource の対応するメソッドに委譲するだけです。

ユーザー資格情報が構成されていないターゲット JNDI DataSource をプロキシするために使用できます。クライアントコードは、標準の getConnection() 呼び出しを使用して、通常どおりこの DataSource で機能します。

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

<bean id="myTargetDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/myds"/>
</bean>

<bean id="myDataSource" class="org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter">
  <property name="targetDataSource" ref="myTargetDataSource"/>
  <property name="username" value="myusername"/>
  <property name="password" value="mypassword"/>
</bean>

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

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

    • UserCredentialsDataSourceAdapter

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

    • setUsername

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

      デフォルトは特定のユーザーではありません。明示的に指定されたユーザー名は、常に DataSource レベルで指定されたユーザー名 / パスワードを上書きすることに注意してください。

      関連事項:
    • setPassword

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

      デフォルトは特定のパスワードではありません。明示的に指定されたユーザー名は、常に DataSource レベルで指定されたユーザー名 / パスワードを上書きすることに注意してください。

      関連事項:
    • setCatalog

      public void setCatalog(StringSE catalog)
      取得した各接続に適用するデータベースカタログを指定します。
      導入:
      4.3.2
      関連事項:
    • setSchema

      public void setSchema(StringSE schema)
      取得した各接続に適用するデータベーススキーマを指定します。
      導入:
      4.3.2
      関連事項:
    • setCredentialsForCurrentThread

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

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

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

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

      public ConnectionSE getConnection() throws SQLExceptionSE
      現在スレッドにバインドされた資格情報があるかどうかを確認し、可能な場合はそれらを使用して、静的に指定されたユーザー名とパスワード(つまり、Bean プロパティの値)にフォールバックします。

      決定された資格情報をパラメーターとして doGetConnection(String, String) に委譲します。

      次で指定:
      インターフェース DataSourceSEgetConnection 
      オーバーライド:
      クラス DelegatingDataSourcegetConnection 
      例外:
      SQLExceptionSE
      関連事項:
    • getConnection

      public ConnectionSE getConnection(StringSE username, StringSE password) throws SQLExceptionSE
      指定されたユーザー資格情報をそのままにして、doGetConnection(String, String) に委譲するだけです。
      次で指定:
      インターフェース DataSourceSEgetConnectionSE 
      オーバーライド:
      クラス DelegatingDataSourcegetConnection 
      例外:
      SQLExceptionSE
    • doGetConnection

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