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.
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.
package com.ibm.wsspi.security.auth.callback;
public class WSMappingCallbackHandlerFactory {
private WSMappingCallbackHandlerFactory;
public static CallbackHandler getMappingCallbackHandler(
ManagedConnectionFactory mcf,
HashMap mappingProperties);
}
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;
}
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.
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
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
MAPPING_ALIAS = "com.ibm.mapping.authDataAlias"
Lorsque vous cliquez sur
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.