アノテーションインターフェース DatabaseIdentityStoreDefinition


@RetentionSE(RUNTIMESE) @TargetSE(TYPESE) public @interface DatabaseIdentityStoreDefinition
リレーショナルデータベースに呼び出し元の資格情報と ID 属性を格納するコンテナー提供の IdentityStore を定義し、その実装を有効な CDI Bean として利用できるようにするために使用されるアノテーション。

コンテナーが提供する IdentityStore は、UsernamePasswordCredential の検証をサポートする必要があり、他の資格型の検証をサポートする場合があります。

  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    {caller、password} ペアを検証する SQL クエリ。
    呼び出し元 ID が格納されているデータベースへのアクセスを提供するデータソースの完全な JNDI 名。
    認証が成功したときに呼び出し元に関連付けられているグループを取得する SQL クエリ。
    パスワードのハッシュを生成し、それを callerQuery() を介してデータベースから返されたハッシュ値と比較することにより、プレーンテキストのパスワードを検証するために使用される PasswordHash 実装。
    アルゴリズム固有のパラメーターを指定するために使用されます。
    int
    複数の IdentityStores が見つかった場合の順序を決定します。
    priority を Jakarta Expression Language 式として指定できるようにします。
    ID ストアの用途を決定します
    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 式が完全な配列要素に使用される場合、式は単一の文字列、文字列配列、文字列 StreamSE のいずれかに評価される必要があります。各場合、すべての文字列は上記の指定された形式に従う必要があります。

      戻り値:
      アルゴリズムパラメーター。
      デフォルト:
      {}
    • priority

      int priority
      複数の IdentityStores が見つかった場合の順序を決定します。
      戻り値:
      優先順位。
      デフォルト:
      70
    • priorityExpression

      StringSE priorityExpression
      priority を Jakarta Expression Language 式として指定できるようにします。設定されている場合、priority で設定された値をオーバーライドします。
      戻り値:
      priority Jakarta Expression Language 式
      デフォルト:
      ""
    • useFor

      ID ストアの用途を決定します
      戻り値:
      ID ストアが使用される型
      デフォルト:
      {VALIDATE, PROVIDE_GROUPS}
    • useForExpression

      StringSE useForExpression
      useFor を Jakarta Expression Language 式として指定できるようにします。設定すると、useFor で設定された値が上書きされます。
      戻り値:
      useFor Jakarta Expression Language 式
      デフォルト:
      ""