2.2.3. プリンシパルユーザー名のケース文字を変更する case-principal-transformer の作成

elytron サブシステムには、case-principal-transformer プリンシパルトランスフォーマーが含まれます。このプリンシパルトランスフォーマーを使用して、プリンシパルのユーザー名を大文字または小文字のいずれかに変更できます。

case-principal-transformer プリンシパルトランスフォーマーには、デフォルトで true に設定される 大文字属性が含まれます

case-principal-transformer のユースケースを示すには、認証メカニズムを使用してプリンシパルをセキュリティーレルムにマップすることを検討してください。レルムマッパーは、マップされたプリンシパルを操作してセキュリティーレルムを特定し、そのアイデンティティーの 1 つを読み込みます。認証メカニズムは、アイデンティティーをレルム後のマッピングステージと最終的なプリンシパル変換ステージに渡します。その後、認証メカニズムは認証目的で ID を検証します。case-principal-transformer プリンシパルトランスフォーマーを使用して、マップされたプリンシパルの文字ケース形式を変換できます。

この手順の例では、セキュリティードメインのコンテキストで case-principal-transformer を使用します。以下の認証ポリシーとプリンシパルトランスフォーマーをインラインで使用することもできます。

  • http-authentication-factory
  • sasl-authentication-factory
  • ssl-context
  • aggregate-realm

手順

  1. case-principal-transformerelytron サブシステムに追加し、ユーザー名の文字ケースを選択します。

    1. トランスフォーマーのユーザー名を大文字に変更するには、デフォルトの 大文字 属性値を変更しないでください。

      デフォルトの 大文字 属性設定で elytron サブシステムに追加された <transformer_name> の例:

      /subsystem=elytron/case-principal-transformer=<transformer_name>:add(upper-case="true")

      または、コマンド構文を省略して、デフォルトの 大文字 属性値を使用することができます。

      /subsystem=elytron/case-principal-transformer=<transformer_name>:add()
    2. トランスフォーマーのユーザー名を小文字に変更するには、大文字 属性を false に設定します。

      upper-case 属性が false に設定された状態で elytron サブシステムに追加された <transformer_name> の例:

      /subsystem=elytron/case-principal-transformer=<transformer_name>:add(upper-case="false")

  2. オプション: elytron サブシステムを使用してプリンシパルトランスフォーマーを設定します。以下の例は、elytron サブシステムによって提供されたデフォルトの ApplicationDomain 設定へのプリンシパルトランスフォーマーを設定しました。Elytron は、デフォルトの ApplicationDomain 設定を pre-realm-principal-transformer に適用します。

    /subsystem=elytron/security-domain=ApplicationDomain:write-attribute(name=pre-realm-principal-transformer,value=<transformer_name>)
    注記

    レルムマッパーによって識別された後、ApplicationDomain 設定を使用するように post-realm-principal-transformer を設定できます。

関連情報