2017-02-01 6 views
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 코드와 유사한 작업을 수행 할 수 있습니까?

답변

0

WAS-ND 7에서 Liberty로 애플리케이션을 포팅 할 때도 이와 동일한 문제가있었습니다. 불행히도 사용자의 암호에 액세스하지 않고 Liberty에서 프로그래밍 방식으로 로그인하는 방법은 없습니다. IBM (25293,082,000)에 공개 된 PMR이 있는데이 기능이 "고려 중"이라고 들었습니다. RFE도 다음과 같이 열었습니다. https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=100438