0
지금 WAS 8.0에서 Liberty 프로필로 애플리케이션을 마이그레이션하려고합니다. 우리 응용 프로그램에서는 사용자 비밀번호가 없어도 프로그래밍 방식으로 로그인 할 수있는 가능성이 필요합니다. 암호없이 자유 프로필을 사용하여 프로그래밍 방식으로 로그인
import com.ibm.websphere.security.auth.WSSubject;
import com.ibm.ws.security.core.ContextManagerFactory;
import com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl;
public class SecurityConfigJaasWasImpl implements ISecurityConfig {
public Object doAsWithoutPwd(String user, String[] roles, final ISecuredCode code) throws Exception {
final String mName ="doAs(String, String[], ISecuredCode)";
Object ret = null;
try {
if (code != null) {
ret = WSSubject.doAs(ContextManagerFactory.getInstance().login("REALM", user), new PrivilegedExceptionAction() {
/* (non-Javadoc)
* @see java.security.PrivilegedExceptionAction#run()
*/
public Object run() throws Exception {
return code.run();
}
});
}
} catch (LoginException e) {
throw new SecurityConfigException("Error login user " + user);
}
}
불행하게도 클래스 ContextManagerFactory이 자유에 알려지지 않은 : 에서 8.0 이것은 다음과 같은 코드로 수행 하였다. 자유 프로필을 사용하여 프로그래밍 방식으로 로그인하는 모든 예에서는 WSCallbackHandlerImpl을 사용하여 Jaas 로그인을 수행합니다. 하지만이를 위해서는 사용자의 암호를 알아야합니다.
리버티 프로파일에서 내 WAS 8.0 코드와 유사한 작업을 수행 할 수 있습니까?