WebSphere Application Server - Express for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

例: WSLogin 構成を使用した、基本認証サブジェクトの作成

この例は、Java 2 Platform, Enterprise Edition (J2EE) アプリケーション内から WSLogin アプリケーション・ログイン構成を使用してログインし、ターゲット・レルムのユーザー ID およびパスワードが含まれるサブジェクトを取得する方法を示します。

	javax.security.auth.Subject subject = null;

try
{
  // Create a login context using the WSLogin login configuration and specify a  
  // user ID, target realm, and password. Note: If the target_realm_name is the 
  // same as the current realm, an authenticated Subject is created. However, if 
  // the target_realm_name is different from the current realm, a basic 
  // authentication Subject is created that is not validated. This unvalidated 
  // Subject is created so that you can send a request to the different target
  // realm with valid security credentials for that realm.
		javax.security.auth.login.LoginContext ctx = new LoginContext("WSLogin",
			new WSCallbackHandlerImpl("userid", "target_realm_name", "password"));

  // Note: The following code is an alternative that validates the user ID and
  // password specified against the target realm. The code performs a remote call
  // to the target server and will return  true if the user ID and password are 
  // valid and false if the user ID and password are not valid. If false is 
  // returned, a WSLoginFailedException exception is created. You can catch
  // that exception and perform a retry or stop the request from flowing by
  // allowing that exception to surface out of this login.

  // ALTERNATIVE LOGIN CONTEXT THAT VALIDATES THE USER ID AND PASSWORD TO THE 
  // TARGET REALM

		/****  currently remarked out ****
		java.util.Map appContext = new java.util.HashMap();
		            appContext.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, 
				"com.ibm.websphere.naming.WsnInitialContextFactory");
		            appContext.put(javax.naming.Context.PROVIDER_URL, 
		                           "corbaloc:iiop:target_host:2809");

		javax.security.auth.login.LoginContext ctx = new LoginContext("WSLogin",
			new WSCallbackHandlerImpl("userid", "target_realm_name", "password", appContext));
		**** currently remarked out  ****/

		// Starts the login	
		ctx.login();

		// Gets the Subject from the context
		subject = ctx.getSubject();
	} 
	catch (javax.security.auth.login.LoginException e)
	{
		throw new com.ibm.websphere.security.auth.WSLoginFailedException (e.getMessage(), e);
	}

	if (subject != null)
	{
		// Defines a privileged action that encapsulates your remote request.
java.security.PrivilegedAction myAction = java.security.PrivilegedAction()
		{
			public Object run()
			{
				// Assumes a proxy is already defined. This example method returns a String
				return proxy.remoteRequest();
			}
		}); 

		// Starts this action using the basic authentication Subject needed for
     // the target realm security requirements.
		String myResult = (String) com.ibm.websphere.security.auth.WSSubject.doAs (subject, myAction);	
	}



関連タスク
異なるターゲット・レルムへのアウトバウンド・マッピングの構成
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 7:05:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.iseries.doc/info/iseriesexp/ae/xsec_wsloginbasicauth.html