2017-02-01 2 views
0

Я пытаюсь перенести наше приложение с WAS 8.0 на профиль Liberty на данный момент. В нашем приложении мне нужна возможность делать программный логин без пароля пользователя. В WAS 8.0 это было сделано с помощью следующего фрагмента кода:Программный логин с профилем без пароля

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 не известен в Свободе. Все примеры для входа в систему с профилем свободы используют WSCallbackHandlerImpl для входа в систему Jaas. Но для этого мне нужно знать пароль пользователя.

Есть ли возможность сделать что-то похожее на мой код WAS 8.0 в профиле свободы?

ответ

0

У меня была эта же проблема при переносе нашего приложения с WAS-ND 7 на Liberty. К сожалению, нет способа выполнить программный логин в Liberty без доступа к паролю пользователя. У меня есть открытый PMR с IBM по этому поводу (25293 082 000), и мне сказали, что эта функция «находится на рассмотрении». У меня также есть RFE: https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=100438

Смежные вопросы