J2C 主体映射模块

如果应用程序需要更复杂的映射功能,那么您可以开发自己的 J2EE 连接器(J2C)映射模块。您在 WebSphere® Application Server V5.x 中开发的映射登录模块在 WebSphere Application Server V6.0.x 及更高版本中仍然受支持。

可以在连接工厂映射配置中使用 V5.x 登录模块。还可在资源管理器连接工厂的引用映射配置中使用这些登录模块。V5.x 映射登录模块无法使用定制映射属性。

如果要在 V6.0.x 及更高版本中开发新的映射登录模块,请使用下列各节中描述的编程接口。

转换: 请迁移 V5.x 映射登录模块以使用新的编程模型、新的定制属性以及应用程序范围级别的映射配置隔离。请注意,使用 WebSphere Application Server V6.0.x 开发的映射登录模块无法在资源连接工厂的不推荐映射配置中使用。

针对资源引用映射调用登录模块

com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandler 类实现了 javax.security.auth.callback.CallbackHandler 接口,它是 WebSphere Application Server V6.0.x 中新的 WebSphere 应用程序服务提供程序编程接口 (SPI)。

应用程序代码使用 com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandlerFactory helper 类来检索 CallbackHandler 对象:
package  com.ibm.wsspi.security.auth.callback;

public class WSMappingCallbackHandlerFactory {
	private WSMappingCallbackHandlerFactory;
	public static CallbackHandler getMappingCallbackHandler(
ManagedConnectionFactory mcf,
HashMap mappingProperties);
}
WSMappingCallbackHandler 类实现 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; 
}
WSMappingCallbackHandler 处理程序可管理在 V6.0.x 中定义的两种新回调类型:
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback 
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback

这两种新的登录模块使用两种回调类型,它们在资源管理器连接工厂的引用映射配置中使用。WSManagedConnectionFactoryCallback 回调提供您在 PasswordCredential 凭证中设置的 ManagedConnectionFactory 实例。通过使用此设置,ManagedConnectionFactory 实例可确定是否使用 PasswordCredential 实例登录至目标企业信息系统 (EIS) 实例。WSMappingPropertiesCallback 回调提供包含定制映射属性的散列映射。com.ibm.mapping.authDataAlias 属性可用于保留或检索认证数据别名。

注: 在先前的示例中,对 PasswordCredential 设置了 MCF 的值。
WebSphere Application Server WSMappingCallbackHandle 句柄继续支持早期映射登录模块可以使用的两种 WebSphere Application Server V5.x 回调类型。只有登录配置在连接工厂中使用的登录模块才能使用定义的两种回调。为了实现向后兼容,WebSphere Application Server V6.0.x 及更高版本使用 WSAuthDataAliasCallback 回调将认证数据别名传递到 V5.x 登录模块(如果在定制属性列表的 com.ibm.mapping.authDataAlias 属性名称中定义了这些别名):
com.ibm.ws.security.auth.j2c.WSManagedConnectionFactoryCallback 
com.ibm.ws.security.auth.j2c.WSAuthDataAliasCallback

针对连接工厂映射调用登录模块

WSPrincipalMappingCallbackHandler 类将处理两种回调类型:
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback 
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback

WebSphere Application Server V6 中不推荐使用 WSPrincipalMappingCallbackHandler 处理程序和这两种回调。

将资源引用的映射属性传递到映射登录模块

可将任意定制属性传递至映射登录模块。以下示例显示 WebSphere Application Server 缺省映射登录模块如何查找认证数据别名属性。

		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) {
	. . . // error handling
WebSphere Application Server V6.0.x 的缺省映射登录模块需要一个映射属性来定义认证数据别名。称为 MAPPING_ALIAS 的映射属性在 com.ibm.wsspi.security.auth.callback 包的 Constants.class 文件中定义。

MAPPING_ALIAS    =   "com.ibm.mapping.authDataAlias"

您在“将资源引用映射至资源”面板上单击使用缺省方法 > 选择认证数据条目认证时,管理控制台将自动使用映射属性中的所选认证数据别名值创建 MAPPING_ALIAS 条目。如果创建您自己的定制登录配置,然后使用缺省映射登录模块,那么必须在映射属性上为资源工厂引用手动设置此属性。

在定制登录模块中,可以使用 WSSubject.getRunAsSubject 方法来获取表示当前运行中线程标识的主体集。当前运行中线程的标识称为 RunAs 标识。RunAs 主体集通常包含主体集合中的 WSPrincipal 主体,并且包含公用凭证集中的 WSCredential 凭证。由您的映射模块创建的主体集实例包含主体集中的 Principal 实例和专用凭证集中的 PasswordCredential 凭证或 org.ietf.jgss.GSSCredential 实例。

在 Java 连接器体系结构 (JCA) 规范 V1.5 中,不推荐使用 JCA V1.0 中定义的 GenericCredential 接口。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_pluginj2c
文件名:rsec_pluginj2c.html