Exemple : Utilisation de la configuration WSLogin pour créer un sujet d'authentification de base

Cet exemple décrit comment utiliser la configuration de connexion d'application WSLogin à partir d'une application Java™ 2 Platform, Enterprise Edition (J2EE) pour se connecter et obtenir un sujet contenant l'ID utilisateur et le mot de passe du domaine cible.

javax.security.auth.Subject subject = null;

try
{
  // Créez un contexte de connexion à l'aide de la configuration de connexion WSLogin  
  // et indiquez un ID utilisateur, un domaine cible et un mot de passe. Remarque : Si 
  // le nom_domaine_cible est identique au domaine en cours, un sujet authentifié est créé. // Toutefois, si le 
  nom_domaine_cible est différent du domaine en cours, un sujet 
  // d'authentification est créé sans être validé. Ce sujet non validé et créé pour vous 
  // permettre d'envoyer une demande à une cible différente
  avec des justificatifs de
		javax.security.auth.login.LoginContext ctx = new LoginContext("WSLogin",
			//	new WSCallbackHandlerImpl("ID_utilisateur", "nom_domaine_cible", "mot_de_passe"));

  // Remarque : Le code suivant offre une alternative qui valide l'ID utilisateur 
  // et le mot de passe spécifiés sur le domaine cible. Le code effectue un appel distant 
  //  du serveur cible et renvoie la valeur true si l'ID utilisateur et le mot de passe 
  //  sont corrects, et la valeur false s'ils ne le sont pas. Si la valeur false est 
  // renvoyée, une exception WSLoginFailedException est générée. Vous pouvez intercepter 
  // cette exception et effectuer une nouvelle tentative ou arrêter le flux de la
  // demande en permettant la génération de cette exception.

  // CONTEXTE DE CONNEXION ALTERNATIF QUI VALIDE L'ID UTILISATEUR ET LE MOT DE PASSE SUR LE 
  // DOMAINE CIBLE

		/****  actuellement placé en commentaire ****
		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", "nom_domaine_cible", "password", appContext));
		**** actuellement placé en commentaire  ****/

		// Démarre la connexion	
		ctx.login();

		// Extrait le sujet du contexte
		subject = ctx.getSubject();
	} 
	catch (javax.security.auth.login.LoginException e)
	{
		throw new com.ibm.websphere.security.auth.WSLoginFailedException (e.getMessage(), e);
	}

	if (subject != null) {
		// Définit une action privilégiée qui encapsule votre demande distante.
java.security.PrivilegedAction monAction = java.security.PrivilegedAction()
		{
			public Object run()
			{
				// Suppose qu'un proxy est déjà défini. Cet exemple de méthode renvoie une chaîne
				return proxy.remoteRequest();
			}
		}); 

		// Démarre cette action à l'aide du sujet d'authentification standard requis 
     // par la sécurité du domaine cible.
		String myResult = (String) com.ibm.websphere.security.auth.WSSubject.doAs (subject, monAction);	
	}

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=xsec_wsloginbasicauth
Nom du fichier : xsec_wsloginbasicauth.html