Я пытаюсь перенести наше приложение с 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 в профиле свободы?