アノテーション型 DatabaseIdentityStoreDefinition
@RetentionSE(RUNTIMESE) @TargetSE(TYPESE) public @interface DatabaseIdentityStoreDefinition
リレーショナルデータベースに呼び出し元の資格情報と ID 属性を格納するコンテナー提供のIdentityStoreを定義し、その実装を有効な CDI Bean として利用できるようにするために使用されるアノテーション。コンテナーが提供する
IdentityStoreは、UsernamePasswordCredentialの検証をサポートする必要があり、他の資格型の検証をサポートする場合があります。
オプション要素の概要
オプション要素 修飾子と型 オプションの要素 説明 StringSEcallerQuery{caller、password} ペアを検証する SQL クエリ。StringSEdataSourceLookup呼び出し元 ID が格納されているデータベースへのアクセスを提供するデータソースの完全な JNDI 名。StringSEgroupsQuery認証が成功したときに呼び出し元に関連付けられているグループを取得する SQL クエリ。ClassSE<? extends PasswordHash>hashAlgorithmパスワードのハッシュを生成し、それをcallerQuery()を介してデータベースから返されたハッシュ値と比較することにより、プレーンテキストのパスワードを検証するために使用されるPasswordHash実装。StringSE[]hashAlgorithmParametersアルゴリズム固有のパラメーターを指定するために使用されます。intpriority複数の IdentityStores が見つかった場合の順序を決定します。StringSEpriorityExpressionpriorityを Jakarta Expression Language 式として指定できるようにします。IdentityStore.ValidationType[]useForID ストアの用途を決定しますStringSEuseForExpressionuseForを 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 式が完全な配列要素に使用される場合、式は単一の文字列、文字列配列、文字列StreamSE のいずれかに評価される必要があります。各場合、すべての文字列は上記の指定された形式に従う必要があります。- 戻り値:
- アルゴリズムパラメーター。
- デフォルト:
- {}
priorityExpression
StringSE priorityExpression
priorityを Jakarta Expression Language 式として指定できるようにします。設定されている場合、priorityで設定された値をオーバーライドします。- 戻り値:
priorityJakarta 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 で設定された値が上書きされます。- 戻り値:
useForJakarta Expression Language 式
- デフォルト:
- ""