Principaux modules de mappage J2C

Vous pouvez développer votre propre module de mappage J2C (J2EE Connector) si votre application requiert d'autres fonctions de mappage plus avancées. Le module de connexion de mappage que vous avez pu développer dans WebSphere Application Server, version 5.x est toujours pris en charge dans WebSphere Application Server, version 6.0.x et supérieure.

Vous pouvez utiliser des modules de connexion de la version 5.x dans le configuration de mappage de la fabrique de connexions. Ils peuvent également être utilisés dans la configuration de mappage des références de la fabrique de connexions du gestionnaire de ressources. Un module de connexion de mappage d'une version 5.x ne peut pas utiliser les propriétés de mappage personnalisées.

Si vous souhaitez développer un nouveau module de connexion de mappage dans une version 6.0.x et supérieure, utilisez l'interface de programmation décrite dans les sections ci-après.

transition : Faites migrer le module de connexion de mappage de votre version 5.x pour utiliser le nouveau modèle de programmation et les nouvelles propriétés personnalisées, ainsi que l'isolement de la configuration de mappage au niveau de l'application. Notez que les modules de connexion de mappage développés à l'aide de WebSphere Application Server version 6.0.x ne peuvent pas être utilisés dans la configuration de mappage obsolète de la fabrique de connexions de ressources.

Appel du module de connexion pour le mappage des références de ressource

Une classe com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandler, qui implémente l'interface javax.security.auth.callback.CallbackHandler, est une nouvelle interface SPI (Service Provider Programming Interface) d'application WebSphere de WebSphere Application Server Version 6.0.x.

Le code d'application utilise la classe auxiliaire com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandlerFactory pour extraire un objet CallbackHandler :
package com.ibm.wsspi.security.auth.callback;

public class WSMappingCallbackHandlerFactory {
	private WSMappingCallbackHandlerFactory;
	public static CallbackHandler getMappingCallbackHandler(
ManagedConnectionFactory mcf,
HashMap mappingProperties);
}
La classe WSMappingCallbackHandler implémente l'interface CallbackHandler :
package com.ibm.wsspi.security.auth.callback;

public class WSMappingCallbackHandler implements CallbackHandler {
	public WSMappingCallbackHandler(ManagedConnectionFactory mcf,
HashMap mappingProperties);
	public void handle(Callback[] callbacks) throws IOException,
     UnsupportedCallbackException; 
}
Le gestionnaire WSMappingCallbackHandler peut gérer deux types de rappel définis dans la version 6.0.x :
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback 
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback

Les nouveaux modules de connexion utilisent deux types de rappel utilisés dans la configuration de mappage des références de la fabrique de connexions du gestionnaire de ressources. Le rappel WSManagedConnectionFactoryCallback fournit une instance ManagedConnectionFactory que vous définissez dans le justificatif PasswordCredential. Avec ce paramètre, l'instance ManagedConnectionFactory peut déterminer si une instance PasswordCredential est utilisée pour la connexion à l'instance EIS (Enterprise Information Systems) cible. Le rappel WSMappingPropertiesCallback fournit un plan de hachage contenant des propriétés de mappage personnalisées. La propriété com.ibm.mapping.authDataAlias permet de réserver ou d'extraire l'alias des données d'authentification.

Remarque : Dans les exemples précédents, la fabrique de connexions gérées (MCF) a pour valeur PasswordCredential.
Le descripteur WSMappingCallbackHandle de WebSphere Application Server, version 6.0.x prend toujours en charge les deux types de rappel de WebSphere Application Server, version 5.x que les modules de connexion de mappage antérieurs peuvent utiliser. Les deux rappels définis ne peuvent être utilisés que par les modules de connexion utilisés par la configuration de connexion dans la fabrique de connexions. Pour assurer la compatibilité avec les versions antérieures, WebSphere Application Server version 6.0.x et supérieure transmet l'alias des données d'authentification, s'il est défini dans la liste des propriétés personnalisées sous le nom de propriété com.ibm.mapping.authDataAlias, aux modules de connexion de la version 5.x via le rappel WSAuthDataAliasCallback :
com.ibm.ws.security.auth.j2c.WSManagedConnectionFactoryCallback 
com.ibm.ws.security.auth.j2c.WSAuthDataAliasCallback

Appel du module de connexion pour le mappage des fabriques de connexions

La classe WSPrincipalMappingCallbackHandler gère deux types de rappel :
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback 
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback

Le gestionnaire WSPrincipalMappingCallbackHandler et les deux rappels sont déconseillés dans WebSphere Application Server version 6.

Transmission des propriétés de mappage des références aux ressources au module de connexion de mappage

Vous pouvez transmettre des propriétés personnalisées arbitraires au module de connexion de mappage. L'exemple suivant indique comment le module de connexion de mappage par défaut de WebSphere Application Server recherche la propriété de l'alias des données d'authentification.

		try {
		    wspm_callbackHandler.handle(callbacks);
	            String userID = null;
	            String password = null;
	            String alias = null;
	            wspm_properties = ((WSMappingPropertiesCallback)callbacks[1]).getProperties();
	
	            if (wspm_properties != null) {
	                alias = (String)  wspm_properties.get(com.ibm.wsspi.security.auth.callback.Constants.MAPPING_ALIAS);
	                if (alias != null) {
	                    alias = alias.trim();
	                }
	            }
	            } catch (UnsupportedCallbackException unsupportedcallbackexception) {
	. . . // gestion des erreurs
Le module de connexion de mappage par défaut de WebSphere Application Server version 6.0.x requiert une propriété de mappage pour définir l'alias des données d'authentification. La propriété de mappage, MAPPING_ALIAS, est définie dans le fichier Constants.class, dans le package com.ibm.wsspi.security.auth.callback.

MAPPING_ALIAS    =   "com.ibm.mapping.authDataAlias"

Lorsque vous cliquez sur Utiliser la méthode par défaut > Sélectionner l'authentification d'entrée des données d'authentification dans le panneau Mapper les références de ressources aux ressources, la console d'administration crée automatiquement une entrée MAPPING_ALIAS avec la valeur d'alias des données d'authentification dans les propriétés de mappage. Si vous créez votre propre configuration de connexion personnalisée, puis utilisez le module de connexion de mappage, vous devez définir cette propriété manuellement dans les propriétés de mappage de la référence de fabrique de ressources.

Dans un module de connexion personnalisé, vous pouvez utiliser la méthode WSSubject.getRunAsSubject pour extraire le sujet représentant l'identité de l'unité d'exécution en cours. L'identité de l'unité d'exécution en cours est appelée l'identité RunAs. Le sujet RunAs contient généralement un principal WSPrincipal dans l'ensemble de principaux et un justificatif WSCredential dans l'ensemble de justificatifs publics. L'instance du sujet créée par votre module de mappage contient une instance de principal dans l'ensemble des principaux et un justificatif PasswordCredential ou org.ietf.jgss.GSSCredential dans l'ensemble des justificatifs privés.

L'interface GenericCredential définie dans la spécification JCA (Java Cryptography Architecture) version 1.0 est dépréciée dans la spécification JCA version 1.5.


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=rsec_pluginj2c
Nom du fichier : rsec_pluginj2c.html