Martin Betak has uploaded a new change for review.

Change subject: frontend: Pass JSESSIONID in VV file
......................................................................

frontend: Pass JSESSIONID in VV file

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=975730
Change-Id: Id5c6d2c91b99240527760b57a6079b5f986aff5b
Signed-off-by: Martin Betak <mbe...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java
R 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/EngineSessionTimeoutData.java
R 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionAcquired.java
R 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionManager.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpiceNative.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVncNative.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/restapi/RestApiSessionIdAware.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java
M frontend/webadmin/modules/webadmin/exclude-filters.xml
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PluginModule.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginEventHandler.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java
18 files changed, 154 insertions(+), 82 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/33770/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java
index 641aec3..dddefa2 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.ui.common.CommonApplicationTemplates;
 import org.ovirt.engine.ui.common.auth.CurrentUser;
 import org.ovirt.engine.ui.common.auth.LoggedInGatekeeper;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionManager;
 import org.ovirt.engine.ui.common.system.ApplicationFocusManager;
 import org.ovirt.engine.ui.common.system.AsyncCallFailureHandler;
 import org.ovirt.engine.ui.common.system.ClientStorage;
@@ -80,6 +81,7 @@
         bind(VdcOperationManager.class).in(Singleton.class);
         bind(OperationProcessor.class).in(Singleton.class);
         
bind(CommunicationProvider.class).to(GWTRPCCommunicationProvider.class).in(Singleton.class);
+        bind(RestApiSessionManager.class).in(Singleton.class);
     }
 
     protected void bindResourceConfiguration(
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/EngineSessionTimeoutData.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/EngineSessionTimeoutData.java
similarity index 89%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/EngineSessionTimeoutData.java
rename to 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/EngineSessionTimeoutData.java
index 92a3f35..4ab00e0 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/EngineSessionTimeoutData.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/EngineSessionTimeoutData.java
@@ -1,4 +1,4 @@
-package org.ovirt.engine.ui.webadmin.plugin.restapi;
+package org.ovirt.engine.ui.common.restapi;
 
 import com.google.gwt.core.client.JavaScriptObject;
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionAcquired.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionAcquired.java
similarity index 80%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionAcquired.java
rename to 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionAcquired.java
index 24cc929..6d254c8 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionAcquired.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionAcquired.java
@@ -1,4 +1,4 @@
-package org.ovirt.engine.ui.webadmin.plugin.restapi;
+package org.ovirt.engine.ui.common.restapi;
 
 import com.gwtplatform.dispatch.annotation.GenEvent;
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionManager.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionManager.java
similarity index 98%
rename from 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionManager.java
rename to 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionManager.java
index 99603f6..120acc3 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/restapi/RestApiSessionManager.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/restapi/RestApiSessionManager.java
@@ -1,4 +1,4 @@
-package org.ovirt.engine.ui.webadmin.plugin.restapi;
+package org.ovirt.engine.ui.common.restapi;
 
 import java.util.logging.Level;
 import java.util.logging.Logger;
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
index bef4a7d..01f5d3b 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
@@ -5,11 +5,14 @@
 import org.ovirt.engine.ui.common.auth.CurrentUser;
 import org.ovirt.engine.ui.common.auth.CurrentUser.LogoutHandler;
 import org.ovirt.engine.ui.common.auth.SSOTokenData;
+import org.ovirt.engine.ui.common.restapi.EngineSessionTimeoutData;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionManager;
 import org.ovirt.engine.ui.common.uicommon.FrontendEventsHandlerImpl;
 import org.ovirt.engine.ui.common.uicommon.FrontendFailureEventListener;
 import org.ovirt.engine.ui.common.uicommon.model.CommonModelManager;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.frontend.FrontendLoginHandler;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.frontend.communication.SSOTokenChangeEvent;
 import org.ovirt.engine.ui.uicommonweb.ITypeResolver;
@@ -35,6 +38,7 @@
  */
 public abstract class BaseApplicationInit<T extends LoginModel> implements 
Bootstrapper, LogoutHandler {
 
+    protected final RestApiSessionManager restApiSessionManager;
     private final ITypeResolver typeResolver;
     private final FrontendEventsHandlerImpl frontendEventsHandler;
     protected final FrontendFailureEventListener frontendFailureEventListener;
@@ -50,12 +54,13 @@
     private final LockInteractionManager lockInteractionManager;
 
     public BaseApplicationInit(ITypeResolver typeResolver,
-            FrontendEventsHandlerImpl frontendEventsHandler,
-            FrontendFailureEventListener frontendFailureEventListener,
-            CurrentUser user, EventBus eventBus,
-            Provider<T> loginModelProvider,
-            LockInteractionManager lockInteractionManager,
-            Frontend frontend, CurrentUserRole currentUserRole) {
+                               FrontendEventsHandlerImpl frontendEventsHandler,
+                               FrontendFailureEventListener 
frontendFailureEventListener,
+                               CurrentUser user, EventBus eventBus,
+                               Provider<T> loginModelProvider,
+                               LockInteractionManager lockInteractionManager,
+                               Frontend frontend, CurrentUserRole 
currentUserRole,
+                               RestApiSessionManager restApiSessionManager) {
         this.typeResolver = typeResolver;
         this.frontendEventsHandler = frontendEventsHandler;
         this.frontendFailureEventListener = frontendFailureEventListener;
@@ -65,6 +70,7 @@
         this.lockInteractionManager = lockInteractionManager;
         this.frontend = frontend;
         this.currentUserRole = currentUserRole;
+        this.restApiSessionManager = restApiSessionManager;
     }
 
     @Override
@@ -81,6 +87,12 @@
         AutoLoginData autoLoginData = AutoLoginData.instance();
         if (autoLoginData != null) {
             handleAutoLogin(autoLoginData);
+        }
+
+        // Check for Engine user session timeout configuration
+        EngineSessionTimeoutData engineSessionTimeoutData = 
EngineSessionTimeoutData.instance();
+        if (engineSessionTimeoutData != null) {
+            
restApiSessionManager.setSessionTimeout(engineSessionTimeoutData.getValue());
         }
     }
 
@@ -174,6 +186,27 @@
         });
 
         frontend.setFilterQueries(filterFrontendQueries());
+
+        // Configure REST API integration for availability of JSESSIONID
+        frontend.setLoginHandler(new FrontendLoginHandler() {
+            @Override
+            public void onLoginSuccess(final String userName, final String 
password, final String domain) {
+                Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+                    @Override
+                    public void execute() {
+                        final String domainToken = "@"; //$NON-NLS-1$
+                        restApiSessionManager.acquireSession(
+                                userName.contains(domainToken) ? userName : 
userName + domainToken + domain,
+                                password);
+                    }
+                });
+            }
+
+            @Override
+            public void onLogout() {
+                restApiSessionManager.releaseSession();
+            }
+        });
     }
 
     /**
@@ -203,6 +236,14 @@
         SSOTokenChangeEvent.fire(eventBus, SSOTokenData.instance().getToken());
         // Indicate that the user should be logged in automatically
         user.setAutoLogin(true);
+
+        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+            @Override
+            public void execute() {
+                // Assume the REST API session has been acquired and is still 
active
+                restApiSessionManager.reuseSession();
+            }
+        });
     }
 
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java
index 8d72378..4ba735e 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java
@@ -6,6 +6,8 @@
 
 public class SpiceNativeImpl extends AbstractSpice implements ISpiceNative {
 
+    private String sessionId;
+
     public SpiceNativeImpl() {
         super();
     }
@@ -81,6 +83,10 @@
             
configBuilder.append("\nsecure-channels=").append(formatSecureChannels(getSslChanels()));
 //$NON-NLS-1$
         }
 
+        if (!StringHelper.isNullOrEmpty(sessionId)) {
+            configBuilder.append("\njsessionid=").append(sessionId); 
//$NON-NLS-1$
+        }
+
         ConsoleModel.makeConsoleConfigRequest("console.vv", 
"application/x-virt-viewer; charset=UTF-8", configBuilder.toString()); 
//$NON-NLS-1$ $NON-NLS-2$
     }
 
@@ -93,4 +99,8 @@
                 : sslChanels.replace(',', ';');
     }
 
+    @Override
+    public void setRestApiSessionId(String sessionId) {
+        this.sessionId = sessionId;
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java
index 312ba10..fd57243 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/UiCommonDefaultTypeResolver.java
@@ -1,6 +1,8 @@
 package org.ovirt.engine.ui.common.uicommon;
 
+import com.google.gwt.event.shared.EventBus;
 import com.google.inject.Inject;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionAcquiredEvent;
 import org.ovirt.engine.ui.uicommonweb.Configurator;
 import org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister;
 import org.ovirt.engine.ui.uicommonweb.ConsoleUtils;
@@ -16,6 +18,7 @@
 import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceNative;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ISpicePlugin;
 import org.ovirt.engine.ui.uicommonweb.models.vms.IVncNative;
+import org.ovirt.engine.ui.uicommonweb.restapi.RestApiSessionIdAware;
 
 public class UiCommonDefaultTypeResolver implements ITypeResolver {
 
@@ -26,18 +29,24 @@
     private final ConsoleUtils consoleUtils;
     private final ErrorPopupManager errorPopupManager;
     private CurrentUserRole currentUserRole;
+    private final EventBus eventBus;
+
+    private ISpiceNative spiceNative;
+    private IVncNative vncNative;
 
     @Inject
     public UiCommonDefaultTypeResolver(Configurator configurator, ILogger 
logger,
             ConsoleUtils consoleUtils,  ErrorPopupManager errorPopupManager,
             ConsoleOptionsFrontendPersister consoleOptionsFrontendPersister,
-            CurrentUserRole currentUserRole) {
+            CurrentUserRole currentUserRole,
+            EventBus eventBus) {
         this.configurator = configurator;
         this.logger = logger;
         this.consoleOptionsFrontendPersister = consoleOptionsFrontendPersister;
         this.consoleUtils = consoleUtils;
         this.errorPopupManager = errorPopupManager;
         this.currentUserRole = currentUserRole;
+        this.eventBus = eventBus;
     }
 
     @SuppressWarnings("rawtypes")
@@ -52,7 +61,7 @@
         } else if (type == ISpicePlugin.class) {
             return new SpicePluginImpl();
         } else if (type == ISpiceNative.class) {
-            return new SpiceNativeImpl();
+            return getSpiceNative();
         } else if (type == ISpiceHtml5.class) {
             return new SpiceHtml5Impl();
         } else if (type == IRdpPlugin.class) {
@@ -62,7 +71,7 @@
         } else if (type == INoVnc.class) {
             return new NoVncImpl();
         } else if (type == IVncNative.class) {
-            return new VncNativeImpl();
+            return getVncNative();
         } else if (type == ConsoleOptionsFrontendPersister.class) {
             return consoleOptionsFrontendPersister;
         } else if (type == ConsoleUtils.class) {
@@ -76,4 +85,34 @@
         throw new RuntimeException("UiCommon Resolver cannot resolve type: " + 
type); //$NON-NLS-1$
     }
 
+    private ISpiceNative getSpiceNative() {
+        if (spiceNative != null) {
+            return spiceNative;
+        }
+
+        spiceNative = new SpiceNativeImpl();
+        attachRestApiSessionIdHandler(spiceNative);
+
+        return spiceNative;
+    }
+
+    private IVncNative getVncNative() {
+        if (vncNative != null) {
+            return vncNative;
+        }
+
+        vncNative = new VncNativeImpl();
+        attachRestApiSessionIdHandler(vncNative);
+
+        return vncNative;
+    }
+
+    private void attachRestApiSessionIdHandler(final RestApiSessionIdAware 
pluginImpl) {
+        eventBus.addHandler(RestApiSessionAcquiredEvent.getType(), new 
RestApiSessionAcquiredEvent.RestApiSessionAcquiredHandler() {
+            @Override
+            public void onRestApiSessionAcquired(RestApiSessionAcquiredEvent 
event) {
+                pluginImpl.setRestApiSessionId(event.getSessionId());
+            }
+        });
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java
index 9d57e6e..4e67f0b 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java
@@ -2,9 +2,11 @@
 
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel;
-import org.ovirt.engine.ui.uicommonweb.models.vms.IVnc;
+import org.ovirt.engine.ui.uicommonweb.models.vms.IVncNative;
 
-public class VncNativeImpl extends AbstractVnc implements IVnc {
+public class VncNativeImpl extends AbstractVnc implements IVncNative {
+
+    private String sessionId;
 
     @Override
     public void invokeClient() {
@@ -29,7 +31,15 @@
             
configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping());
 //$NON-NLS-1$
         }
 
+        if (!StringHelper.isNullOrEmpty(sessionId)) {
+            configBuilder.append("\njsessionid=").append(sessionId); 
//$NON-NLS-1$
+        }
+
         ConsoleModel.makeConsoleConfigRequest("console.vv", 
"application/x-virt-viewer; charset=UTF-8", configBuilder.toString()); 
//$NON-NLS-1$ $NON-NLS-2$
     }
 
+    @Override
+    public void setRestApiSessionId(String sessionId) {
+        this.sessionId = sessionId;
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java
index f8626d9..20d400f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java
@@ -105,7 +105,7 @@
     @Override
     public VM getEntity()
     {
-        return (VM) super.getEntity();
+        return super.getEntity();
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpiceNative.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpiceNative.java
index 36ad136..ec007bc 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpiceNative.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpiceNative.java
@@ -1,9 +1,11 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import org.ovirt.engine.ui.uicommonweb.restapi.RestApiSessionIdAware;
+
 /**
  * Marking interface
  *
  */
-public interface ISpiceNative extends ISpice {
+public interface ISpiceNative extends ISpice, RestApiSessionIdAware {
 
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVncNative.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVncNative.java
index efe20d5..c2c8c18 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVncNative.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVncNative.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
-public interface IVncNative extends IVnc {
+import org.ovirt.engine.ui.uicommonweb.restapi.RestApiSessionIdAware;
+
+public interface IVncNative extends IVnc, RestApiSessionIdAware {
 
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
index 7550b2d..b76d378 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java
@@ -54,18 +54,21 @@
 
 public class SpiceConsoleModel extends ConsoleModel implements 
IFrontendMultipleQueryAsyncCallback {
 
-    public enum ClientConsoleMode { Native, Plugin, Auto, Html5 }
 
+
+    public enum ClientConsoleMode { Native, Plugin, Auto, Html5;}
     public static EventDefinition spiceDisconnectedEventDefinition;
+
     public static EventDefinition spiceConnectedEventDefinition;
     public static EventDefinition spiceMenuItemSelectedEventDefinition;
     public static EventDefinition usbAutoShareChangedEventDefinition;
     public static EventDefinition wanColorDepthChangedEventDefinition;
     public static EventDefinition wanDisableEffectsChangeEventDefinition;
-
     private SpiceMenu menu;
+
     private ISpice privatespice;
     private ClientConsoleMode consoleMode;
+    private String restApiSessionId;
 
     private void setspice(ISpice value) {
         privatespice = value;
@@ -330,7 +333,7 @@
         }
 
         if (!success) {
-            boolean enableSpiceRootCertificateValidation = (Boolean) 
result.getReturnValues().get(3).getReturnValue();
+            boolean enableSpiceRootCertificateValidation = 
result.getReturnValues().get(3).getReturnValue();
             VdcQueryReturnValue caCertificateReturnValue = 
result.getReturnValues().get(5);
 
             // If only the caCertificate query failed - ignore failure (goto 
onSuccess)
@@ -348,18 +351,18 @@
         String cipherSuite = null;
         String spiceSecureChannels = null;
 
-        boolean isSSLEnabled = (Boolean) returnValues.get(0).getReturnValue();
+        boolean isSSLEnabled = returnValues.get(0).getReturnValue();
         if (isSSLEnabled) {
-            cipherSuite = (String) returnValues.get(1).getReturnValue();
-            spiceSecureChannels = (String) 
returnValues.get(2).getReturnValue();
+            cipherSuite = returnValues.get(1).getReturnValue();
+            spiceSecureChannels = returnValues.get(2).getReturnValue();
         }
 
         String certificateSubject = ""; //$NON-NLS-1$
         String caCertificate = ""; //$NON-NLS-1$
 
-        if ((Boolean) returnValues.get(3).getReturnValue()) {
-            certificateSubject = (String) returnValues.get(4).getReturnValue();
-            caCertificate = (String) returnValues.get(5).getReturnValue();
+        if (returnValues.get(3).getReturnValue()) {
+            certificateSubject = returnValues.get(4).getReturnValue();
+            caCertificate = returnValues.get(5).getReturnValue();
         }
 
         getspice().setHost(getEntity().getDisplayIp());
@@ -404,6 +407,10 @@
                 ConstantsManager.getInstance()
                         .getConstants()
                         
.usbDevicesNoUsbdevicesClientSpiceUsbRedirectorNotInstalled() });
+
+        if (restApiSessionId != null) {
+
+        }
 
         // Create menu.
         int id = 1;
@@ -504,7 +511,7 @@
             public void onSuccess(Object model, Object ReturnValue) {
                 SpiceConsoleModel spiceConsoleModel = (SpiceConsoleModel) 
model;
                 String address =
-                        (String) ((VdcQueryReturnValue) 
ReturnValue).getReturnValue();
+                        ((VdcQueryReturnValue) ReturnValue).getReturnValue();
                 spiceConsoleModel.getspice().setHost(address);
                 spiceConsoleModel.spiceConnect();
             }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/restapi/RestApiSessionIdAware.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/restapi/RestApiSessionIdAware.java
new file mode 100644
index 0000000..fbdffa7
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/restapi/RestApiSessionIdAware.java
@@ -0,0 +1,5 @@
+package org.ovirt.engine.ui.uicommonweb.restapi;
+
+public interface RestApiSessionIdAware {
+    void setRestApiSessionId(String sessionId);
+}
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java
index 77fc24f..4906427 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.ui.userportal.system;
 
 import org.ovirt.engine.ui.common.auth.CurrentUser;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionManager;
 import org.ovirt.engine.ui.common.system.BaseApplicationInit;
 import org.ovirt.engine.ui.common.system.LockInteractionManager;
 import org.ovirt.engine.ui.common.uicommon.ClientAgentType;
@@ -45,9 +46,10 @@
             UserPortalCurrentUserRole userRole,
             ConnectAutomaticallyManager connectAutomaticallyManager,
             ClientAgentType clientAgentType,
-            ApplicationDynamicMessages dynamicMessages) {
+            ApplicationDynamicMessages dynamicMessages,
+            RestApiSessionManager restApiSessionManager) {
         super(typeResolver, frontendEventsHandler, 
frontendFailureEventListener,
-                user, eventBus, loginModelProvider, lockInteractionManager, 
frontend, userRole);
+                user, eventBus, loginModelProvider, lockInteractionManager, 
frontend, userRole, restApiSessionManager);
         this.placeManager = placeManager;
         this.userRole = userRole;
         this.connectAutomaticallyManager = connectAutomaticallyManager;
diff --git a/frontend/webadmin/modules/webadmin/exclude-filters.xml 
b/frontend/webadmin/modules/webadmin/exclude-filters.xml
index 70c4645..2713624 100644
--- a/frontend/webadmin/modules/webadmin/exclude-filters.xml
+++ b/frontend/webadmin/modules/webadmin/exclude-filters.xml
@@ -18,7 +18,7 @@
         UuF: Unused field (UUF_UNUSED_FIELD)
        -->
      <Match>
-       <Class 
name="org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionAcquired" />
+       <Class name="org.ovirt.engine.ui.common.restapi.RestApiSessionAcquired" 
/>
        <Bug code="UuF"/>
      </Match>
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PluginModule.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PluginModule.java
index 3c8edc2..0c623dc 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PluginModule.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PluginModule.java
@@ -3,7 +3,6 @@
 import org.ovirt.engine.ui.webadmin.plugin.PluginEventHandler;
 import org.ovirt.engine.ui.webadmin.plugin.PluginManager;
 import org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions;
-import org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionManager;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.DynamicUrlContentTabPresenter;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.DynamicUrlContentTabProxyFactory;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.DynamicUrlContentPopupPresenterWidget;
@@ -23,7 +22,6 @@
         bind(PluginManager.class).asEagerSingleton();
         bind(PluginEventHandler.class).asEagerSingleton();
         bind(PluginUiFunctions.class).in(Singleton.class);
-        bind(RestApiSessionManager.class).in(Singleton.class);
 
         // Dynamic tab component
         
bind(DynamicUrlContentTabPresenter.ViewDef.class).to(DynamicUrlContentTabView.class);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginEventHandler.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginEventHandler.java
index c46e924..2aa5dd1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginEventHandler.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginEventHandler.java
@@ -5,12 +5,12 @@
 import org.ovirt.engine.ui.common.auth.CurrentUser;
 import org.ovirt.engine.ui.common.auth.UserLoginChangeEvent;
 import 
org.ovirt.engine.ui.common.auth.UserLoginChangeEvent.UserLoginChangeHandler;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionAcquiredEvent;
 import 
org.ovirt.engine.ui.webadmin.plugin.PluginManager.PluginInvocationCondition;
 import org.ovirt.engine.ui.webadmin.plugin.entity.EntityObject;
 import org.ovirt.engine.ui.webadmin.plugin.entity.SystemTreeItemObject;
 import org.ovirt.engine.ui.webadmin.plugin.jsni.JsArrayHelper;
-import org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionAcquiredEvent;
-import 
org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionAcquiredEvent.RestApiSessionAcquiredHandler;
+import 
org.ovirt.engine.ui.common.restapi.RestApiSessionAcquiredEvent.RestApiSessionAcquiredHandler;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.ClusterSelectionChangeEvent;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.ClusterSelectionChangeEvent.ClusterSelectionChangeHandler;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.DataCenterSelectionChangeEvent;
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java
index af7c241..352fbeb 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.webadmin.system;
 
 import org.ovirt.engine.core.common.mode.ApplicationMode;
-import org.ovirt.engine.ui.common.auth.AutoLoginData;
 import org.ovirt.engine.ui.common.auth.CurrentUser;
 import org.ovirt.engine.ui.common.system.BaseApplicationInit;
 import org.ovirt.engine.ui.common.system.LockInteractionManager;
@@ -10,7 +9,6 @@
 import org.ovirt.engine.ui.common.uicommon.model.CommonModelManager;
 import org.ovirt.engine.ui.common.uicommon.model.ModelInitializedEvent;
 import org.ovirt.engine.ui.frontend.Frontend;
-import org.ovirt.engine.ui.frontend.FrontendLoginHandler;
 import org.ovirt.engine.ui.uicommonweb.ITypeResolver;
 import org.ovirt.engine.ui.uicommonweb.ReportInit;
 import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole;
@@ -20,12 +18,9 @@
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages;
-import org.ovirt.engine.ui.webadmin.plugin.restapi.EngineSessionTimeoutData;
-import org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionManager;
+import org.ovirt.engine.ui.common.restapi.RestApiSessionManager;
 import org.ovirt.engine.ui.webadmin.uimode.UiModeData;
 
-import com.google.gwt.core.client.Scheduler;
-import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.Window;
 import com.google.inject.Inject;
@@ -35,7 +30,6 @@
 public class ApplicationInit extends BaseApplicationInit<LoginModel> {
 
     private final PlaceManager placeManager;
-    private final RestApiSessionManager restApiSessionManager;
     private final ApplicationDynamicMessages dynamicMessages;
 
     @Inject
@@ -52,9 +46,8 @@
             ApplicationDynamicMessages dynamicMessages,
             CurrentUserRole currentUserRole) {
         super(typeResolver, frontendEventsHandler, 
frontendFailureEventListener,
-                user, eventBus, loginModelProvider, lockInteractionManager, 
frontend, currentUserRole);
+                user, eventBus, loginModelProvider, lockInteractionManager, 
frontend, currentUserRole, restApiSessionManager);
         this.placeManager = placeManager;
-        this.restApiSessionManager = restApiSessionManager;
         this.dynamicMessages = dynamicMessages;
 
     }
@@ -68,12 +61,6 @@
         UiModeData uiModeData = UiModeData.instance();
         if (uiModeData != null) {
             handleUiMode(uiModeData);
-        }
-
-        // Check for Engine user session timeout configuration
-        EngineSessionTimeoutData engineSessionTimeoutData = 
EngineSessionTimeoutData.instance();
-        if (engineSessionTimeoutData != null) {
-            
restApiSessionManager.setSessionTimeout(engineSessionTimeoutData.getValue());
         }
 
         // Initiate transition to requested application place
@@ -112,39 +99,6 @@
         super.initFrontend();
 
         ReportInit.getInstance().initHandlers(eventBus);
-        // Configure REST API integration for UI plugin infrastructure
-        frontend.setLoginHandler(new FrontendLoginHandler() {
-            @Override
-            public void onLoginSuccess(final String userName, final String 
password, final String domain) {
-                Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-                    @Override
-                    public void execute() {
-                        final String domainToken = "@"; //$NON-NLS-1$
-                        restApiSessionManager.acquireSession(
-                                userName.contains(domainToken) ? userName : 
userName + domainToken + domain,
-                                password);
-                    }
-                });
-            }
-
-            @Override
-            public void onLogout() {
-                restApiSessionManager.releaseSession();
-            }
-        });
-    }
-
-    @Override
-    protected void handleAutoLogin(AutoLoginData autoLoginData) {
-        super.handleAutoLogin(autoLoginData);
-
-        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
-            @Override
-            public void execute() {
-                // Assume the REST API session has been acquired and is still 
active
-                restApiSessionManager.reuseSession();
-            }
-        });
     }
 
     void handleUiMode(UiModeData uiModeData) {


-- 
To view, visit http://gerrit.ovirt.org/33770
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id5c6d2c91b99240527760b57a6079b5f986aff5b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <mbe...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to