使用自由配置文件无需密码进行编程登录

时间:2017-02-01 14:23:27

标签: websphere-liberty

我尝试将我们的应用程序从WAS 8.0迁移到Liberty Profile。 在我们的应用程序中,我需要有可能在没有用户密码的情况下进行编程登录。 在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);
      }
}

不幸的是,Liberty中没有类ContextManagerFactory。 使用自由配置文件进行编程登录的所有示例都使用WSCallbackHandlerImpl来执行Jaas登录。但为此我需要知道用户的密码。

是否有可能在自由配置文件中执行与我的WAS 8.0代码类似的操作?

1 个答案:

答案 0 :(得分:0)

将我们的应用程序从WAS-ND 7移植到Liberty时遇到了同样的问题。遗憾的是,如果没有用户密码,就无法在Liberty上执行程序化登录。我在这方面与IBM(25293,082,000)有一个开放的PMR,我被告知该功能正在考虑中#34;。我还有一个RFE开放: https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=100438