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 }