당신은 J2C 인증 데이터 항목에서 자격 증명을 얻기 위해 다음 코드를 사용할 수 있습니다
import com.ibm.wsspi.security.auth.callback.Constants;
import com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandlerFactory;
import javax.resource.spi.security.PasswordCredential;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginContext;
Map map = new HashMap();
map.put(Constants.MAPPING_ALIAS, "YOUR_J2C_DATA_ALIAS");
CallbackHandler callbackHandler = WSMappingCallbackHandlerFactory.getInstance().getCallbackHandler(map, null);
LoginContext loginContext = new LoginContext("DefaultPrincipalMapping", callbackHandler);
loginContext.login();
Subject subject = loginContext.getSubject();
Set credentials = subject.getPrivateCredentials();
PasswordCredential passwordCredential = (PasswordCredential) credentials.iterator().next();
String user = passwordCredential.getUserName();
String password = new String(passwordCredential.getPassword());
출처
2011-06-15 10:00:38
fnt
이것은 마치 마법처럼 일했다! – Jay
Websphere 특정 클래스 ('Constants' 및'WSMappingCallbackHandlerFactory')를 참조하지 않고이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. – FGreg
@FGreg 가능하다고 생각하지 않습니다. 그것은 특정의 클래스를 사용하는 것을 전제로해야하기 때문에 WAS에 특정한 것입니다. BTW, 이들은 공용 WAS API의 일부입니다. 그것을 사용하는 데 문제가 있습니까? – fnt