EJBメソッドを起動するユーザやアプリケーションのEJBリクエスト証明書は、 Javaオブジェクト(java.security.Principal クラス)を送信することでMagicアプリケーションサーバに渡されます。 この情報を送信しない場合は、EJBをデプロイする前にEJB のDD のPropagatePrincipal 環境の指定を「false」に設定してください。
証明書情報にアクセスするには、オブジェクトへのJava参照を保存するためのBLOB変数を定義して、以下の式で更新する必要があります。
GetParam('EJB_PRINCIPAL') |
主要な情報が「java.security.Principal」のようにシリアライズされたオブジェクトに保存されている場合、Java参照は、JavaのStringオブジェクトへのリファレンスであり、その値はユーザ名となります。
主要な情報が、シリアライズされたオブジェクトに保存されていない場合、Java参照はjavax.security.auth.kerberos.KerberosPrincipalまたはjavax.security.auth.x500.X500Principalなどのjava.security.Principalを実装したクラスからJavaオブジェクトになります。
主要な名前にアクセスするために、JCall関数を使用して getNameメソッドを呼び出すことができます。例えば、以下の関数を実行することで<alpha variable> を更新することができます。
JCall(<Java ref var>,'getName','()Ljava/lang/String;') |
Java参照が特定のクラスと関連性があるかどうかを確認するには、JInstanceOf関数を使用することができます。例えば以下のように指定します。
JInstanceOf(<Java ref var>,' javax.security.auth.kerberos.KerberosPrincipal') |