アノテーション型 DatabaseIdentityStoreDefinition
@RetentionSE(RUNTIMESE) @TargetSE(TYPESE) public @interface DatabaseIdentityStoreDefinition
リレーショナルデータベースに呼び出し元の資格情報と ID 属性を格納するコンテナー提供のIdentityStore
を定義し、その実装を有効な CDI Bean として利用できるようにするために使用されるアノテーション。コンテナーが提供する
IdentityStore
は、UsernamePasswordCredential
の検証をサポートする必要があり、他の資格型の検証をサポートする場合があります。
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 StringSE
callerQuery
{caller、password} ペアを検証する SQL クエリ。StringSE
dataSourceLookup
発信者 ID が格納されているデータベースへのアクセスを提供するデータソースの完全な JNDI 名。StringSE
groupsQuery
認証が成功したときに呼び出し元に関連付けられているグループを取得する SQL クエリ。ClassSE<? extends PasswordHash>
hashAlgorithm
パスワードのハッシュを生成し、それをcallerQuery()
を介してデータベースから返されたハッシュ値と比較することにより、プレーンテキストのパスワードを検証するために使用されるPasswordHash
実装。StringSE[]
hashAlgorithmParameters
アルゴリズム固有のパラメーターを指定するために使用されます。int
priority
複数の IdentityStores が見つかった場合の順序を決定します。StringSE
priorityExpression
priority
を Jakarta Expression Language 式として指定できるようにします。IdentityStore.ValidationType[]
useFor
ID ストアの用途を決定しますStringSE
useForExpression
useFor
を Jakarta Expression Language 式として指定できるようにします。
要素の詳細
dataSourceLookup
StringSE dataSourceLookup
発信者 ID が格納されているデータベースへのアクセスを提供するデータソースの完全な JNDI 名。- 戻り値:
- データソースの完全な JNDI 名
- デフォルト:
- "java:comp/DefaultDataSource"
callerQuery
StringSE callerQuery
{caller、password} ペアを検証する SQL クエリ。useFor()
にIdentityStore.ValidationType.VALIDATE
が含まれている場合にのみ必要です。認証される呼び出し元の名前は、唯一のプレースホルダーとして設定する必要があります。(ハッシュされた)パスワードは、結果の最初の列にあるはずです。
クエリの例:
select password from callers where name = ?
- 戻り値:
- 検証する SQL クエリ
- デフォルト:
- ""
groupsQuery
StringSE groupsQuery
認証が成功したときに呼び出し元に関連付けられているグループを取得する SQL クエリ。useFor()
にIdentityStore.ValidationType.PROVIDE_GROUPS
が含まれている場合にのみ必要です。認証された呼び出し元の名前は、唯一のプレースホルダーとして設定する必要があります。グループ名は結果の最初の列にあるはずです。
クエリの例:
select group_name from caller_groups where caller_name = ?
- 戻り値:
- グループを取得する SQL クエリ
- デフォルト:
- ""
hashAlgorithm
ClassSE<? extends PasswordHash> hashAlgorithm
パスワードのハッシュを生成し、それをcallerQuery()
を介してデータベースから返されたハッシュ値と比較することにより、プレーンテキストのパスワードを検証するために使用されるPasswordHash
実装。- 戻り値:
- 平文パスワードの検証に使用されるパスワードハッシュ。
- デフォルト:
- jakarta.security.enterprise.identitystore.Pbkdf2PasswordHash.class
hashAlgorithmParameters
StringSE[] hashAlgorithmParameters
アルゴリズム固有のパラメーターを指定するために使用されます。パラメーターは、以下の形式を使用して、名前と値のペアのリストとして指定されます。
parameterName=parameterValue
例:
Algorithm.param1="value" Algorithm.param2=32
この属性は、
parameterValue
と完全な配列要素の両方に対して即時 Jakarta Expression Language 式((${} 構文)をサポートします。EL 式が完全な配列要素に使用される場合、式は単一の文字列、文字列配列、文字列Stream
SE のいずれかに評価される必要があります。各場合、すべての文字列は上記の指定された形式に従う必要があります。- 戻り値:
- アルゴリズムパラメーター。
- デフォルト:
- {}
priorityExpression
StringSE priorityExpression
priority
を Jakarta Expression Language 式として指定できるようにします。設定されている場合、priority
で設定された値をオーバーライドします。- 戻り値:
priority
Jakarta Expression Language 式
- デフォルト:
- ""
useFor
IdentityStore.ValidationType[] useFor
ID ストアの用途を決定します- 戻り値:
- ID ストアが使用される型
- デフォルト:
- {jakarta.security.enterprise.identitystore.IdentityStore.ValidationType.VALIDATE, jakarta.security.enterprise.identitystore.IdentityStore.ValidationType.PROVIDE_GROUPS}
useForExpression
StringSE useForExpression
useFor
を Jakarta Expression Language 式として指定できるようにします。設定すると、useFor で設定された値が上書きされます。- 戻り値:
useFor
Jakarta Expression Language 式
- デフォルト:
- ""