J2C 프린시펄 맵핑 모듈
애플리케이션에 보다 정교한 맵핑 기능이 필요한 경우 자체 J2C(J2EE Connector) 맵핑 모듈을 개발 할 수 있습니다. WebSphere® Application Server 버전 5.x에서 개발했을 수도 있는 맵핑 로그인 모듈은 WebSphere Application Server 버전 6.0.x 이상에서 계속해서 지원됩니다.
연결 팩토리 맵핑 구성에서 버전 5.x 로그인 모듈을 사용할 수 있습니다. 이러한 로그인 모듈은 자원 관리자 연결 팩토리에 대한 참조 맵핑 구성에도 사용할 수 있습니다. 버전 5.x 맵핑 로그인 모듈은 사용자 정의 맵핑 특성에 사용할 수 없습니다.
버전 6.0.x 이상에서 새 맵핑 로그인 모듈을 개발하려는 경우 다음 섹션에서 설명되는 프로그래밍 인터페이스를 사용하십시오.
자원 참조 맵핑에 대한 로그인 모듈 호출
javax.security.auth.callback.CallbackHandler 인터페이스를 구현하는 com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandler 클래스는 WebSphere Application Server 버전 6.0.x에서 새 WebSphere 애플리케이션 SPI(Service Provider Programming Interface)입니다.
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
새 로그인 모듈은 자원 관리자 연결 팩토리에 대한 참조 맵핑 구성에서 사용되는 두 개의 콜백 유형을 사용합니다. WSManagedConnectionFactoryCallback 콜백은 PasswordCredential 신임 정보에서 설정한 ManagedConnectionFactory 인스턴스를 제공합니다. 이 설정에서 ManagedConnectionFactory 인스턴스는 PasswordCredential 인스턴스가 대상 EIS(Enterprise Information Systems) 인스턴스에 대한 사인온에 사용되는지 여부를 판별할 수 있습니다. WSMappingPropertiesCallback 콜백은 사용자 정의 맵핑 특성을 포함하는 해시 맵을 제공합니다. com.ibm.mapping.authDataAlias 특성은 인증 데이터 별명을 예약하거나 검색하는 데 사용할 수 있습니다.
com.ibm.ws.security.auth.j2c.WSManagedConnectionFactoryCallback
com.ibm.ws.security.auth.j2c.WSAuthDataAliasCallback
연결 팩토리 맵핑에 대한 로그인 모듈 호출
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback
com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback
WSPrincipalMappingCallbackHandler 핸들러 및 두 개의 콜백은 WebSphere Application Server 버전 6에서 더 이상 사용되지 않습니다.
자원 참조의 맵핑 특성을 맵핑 로그인 모듈에 전달
임의의 사용자 정의 특성을 맵핑 로그인 모듈에 전달할 수 있습니다. 다음 예제는 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
MAPPING_ALIAS = "com.ibm.mapping.authDataAlias"
자원에 자원 참조 맵핑 패널에서
을 클릭하면 관리 콘솔이 맵핑 특성에서 선택된 인증 데이터 별명 값으로 MAPPING_ALIAS 항목을 자동으로 작성합니다. 자체 사용자 정의 로그인 구성을 작성한 다음 기본 맵핑 로그인 모듈을 사용하는 경우 자원 팩토리 참조의 맵핑 특성에서 이 특성을 수동으로 설정해야 합니다.사용자 정의 로그인 모듈에서 WSSubject.getRunAsSubject 메소드를 사용하여 현재 실행 중인 스레드의 ID를 나타내는 주제를 검색할 수 있습니다. 현재 실행 중인 스레드의 ID는 RunAs ID라고 합니다. RunAs 주제는 일반적으로 프린시펄 세트에 WSPrincipal 프린시펄을 포함하고 공용 신임 정보 세트에 WSCredential 신임 정보를 포함합니다. 맵핑 모듈에서 작성되는 주제 인스턴스는 프린시펄 세트에 프린시펄 인스턴스를 포함하고 개인 신임 정보 세트에 PasswordCredential 신임 정보 또는 org.ietf.jgss.GSSCredential 인스턴스를 포함합니다.
JCA(Java Connector Architecture) 스펙 버전 1.0에서 정의되는 GenericCredential 인터페이스는 JCA 버전 1.5 스펙에서는 더 이상 사용되지 않습니다.