Módulos de Mapeamento Principal do J2C
Você pode desenvolver seu próprio módulo de mapeamento J2C (J2EE Connector) se seu aplicativo exigir funções de mapeamento mais sofisticadas. O módulo de login de mapeamento que pode ter sido desenvolvido no WebSphere Application Server Versão 5.x ainda é suportado no WebSphere Application Server Versão 6.0.x e posterior.
É possível usar os módulos de login da Versão 5.x na configuração de mapeamento do connection factory. Esses módulos de login também podem ser utilizados na configuração de mapeamento de referência para a connection factory do gerenciador de recursos. Um módulo de login de mapeamento versão 5.x não pode utilizar as propriedades de mapeamento customizadas.
Se desejar desenvolver um novo módulo de login de de mapeamento na Versão 6.0.x e posterior, use a interface de programação que é descrita nas seções seção.
Chamando o módulo de login para o mapeamento de referência de recurso
Uma classe com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandler, que implementa a interface javax.security.auth.callback.CallbackHandler, é uma nova WebSphere Application Service Provider Programming Interface (SPI) no WebSphere Application Server Versão 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
Os novos módulos de login utilizam os dois tipos de retorno de chamada utilizados na configuração de mapeamento de referência para a connection factory do gerenciador de recurso. O retorno de chamada WSManagedConnectionFactoryCallback fornece uma instância ManagedConnectionFactory configurada na credencial PasswordCredential. Com essa configuração, a instância ManagedConnectionFactory pode determinar se uma instância PasswordCredential é utilizada para conexão com a instância EIS (Enterprise Information Systems) de destino. O retorno de chamada WSMappingPropertiesCallback fornece um mapa hash que contém propriedades de mapeamento customizadas. A propriedade com.ibm.mapping.authDataAlias pode ser usada para reservar ou recuperar o Alias de Dados de Autenticação.
com.ibm.ws.security.auth.j2c.WSManagedConnectionFactoryCallback
com.ibm.ws.security.auth.j2c.WSAuthDataAliasCallback
Chamando o módulo de login para o mapeamento do connection factory
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback
O manipulador WSPrincipalMappingCallbackHandler e os dois retornos de chamada estão descontinuados no WebSphere Application Server Versão 6.
Passando as propriedades de recurso para a referência de recurso para o módulo de login de mapeamento
Você pode transmitir propriedades customizadas arbitrárias para seu módulo de login de mapeamento. O exemplo a seguir mostra como o módulo de login de mapeamento padrão do WebSphere Application Server procura a propriedade de alias dos dados de autenticação.
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) {
. . . // manipulação de erros
MAPPING_ALIAS = "com.ibm.mapping.authDataAlias"
Ao clicar em
no Mapear referências de recurso para painel de recursos, o console administrativo cria automaticamente uma entrada MAPPING_ALIAS com o valor do alias de autenticação selecionado nas propriedades de mapeamento. Se criar sua própria configuração de login customizada e depois utilizar o módulo de login de mapeamento padrão, você deve configurar essa propriedade manualmente nas propriedades de mapeamento para a referência do depósito de informações do provedor do recurso.Em um módulo de login customizado, é possível utilizar o método WSSubject.getRunAsSubject para recuperar o objeto que representa a identidade do encadeamento atualmente em execução. A identidade do encadeamento atualmente em execução é conhecida como a identidade RunAs. O objeto RunAs em geral contém um proprietário WSPrincipal no conjunto de proprietários e uma credencial WSCredential no conjunto de credenciais públicas. A instância do objeto que é criada por seu módulo de mapeamento contém uma instância Principal no conjunto de proprietários e uma credencial PasswordCredential ou uma instância org.ietf.jgss.GSSCredential no conjunto de credenciais privadas.
A interface GenericCredential definida no Java Connector Architecture (JCA) Specification Versão 1.0 foi descontinuada na especificação do JCA Versão 1.5.