2017-02-01 65 views
0

我嘗試將我們的應用程序從WAS 8.0遷移到Liberty Profile。 在我們的應用程序中,我需要在沒有用戶密碼的情況下進行程序化登錄的可能性。 在8.0這是用下面的代碼片段完成:使用liberty profile無編碼登錄程序

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不知道自由。 所有使用liberty profile編程登錄的示例都使用WSCallbackHandlerImpl來執行Jaas登錄。但爲此,我需要知道用戶的密碼。

有沒有可能在liberty配置文件中執行類似於我的WAS 8.0代碼的操作?

回答

0

當我們的應用程序從WAS-ND 7移植到Liberty時,我遇到了同樣的問題。不幸的是,在沒有訪問用戶密碼的情況下,無法在Liberty上執行程序化登錄。我在這個(25293,082,000)上與IBM有一個開放的PMR,並且我被告知該功能「正在考慮中」。我也有一個RFE在此打開: https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=100438

相關問題