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代碼的操作?