JAAS のスレッドからの RunAs サブジェクトの取得
RunAs サブジェクトまたは呼び出しサブジェクトには、 このメソッド用にアプリケーションのデプロイメント記述子内に設定された RunAs モードに対する ユーザー認証情報が含まれています。
事前処理
このタスクの概要
RunAs サブジェクト (起動サブジェクト) には、このメソッド用にアプリケーション・デプロイメント記述子内に設定された RunAs モードに対するユーザー認証情報 が含まれています。 このサブジェクトは、 WSSubject.getRunAsSubject アプリケーション・プログラミング・インターフェース (API) から戻されると、 その中にある既存のオブジェクトが置き換えられないように、読み取り専用とマークされます。
サブジェクト内のほとんどのデータは、 別のサーバーへのダウンストリームに伝搬されません。 WSCredential クレデンシャル内のクレデンシャル・トークンのみがダウンストリームに伝搬され、 新規の呼び出し元サブジェクトが生成されます。
手順
- WSCredential クレデンシャルにアクセスします。WSCredential クレデンシャルは API 資料に記載されています。
- クレデンシャル内のハッシュ・マップにデータを置くか、設定します。
例
try { javax.security.auth.Subject runas_subject;
com.ibm.websphere.security.cred.WSCredential runas_cred;
runas_subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
if (runas_subject != null) { runas_cred = runas_subject.getPublicCredentials
com.ibm.websphere.security.cred.WSCredential.class).iterator().next();
String RUNASDATA = (String) runas_cred.get ("MYKEY")
System.out.println("My data from the RunAs credential is: " + RUNASDATA ); } }
catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }