[overlord-commits] Overlord SVN: r758 - in bpm-console/trunk: gui/war/src/main/java/jmaki/xhp and 6 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Aug 18 06:19:57 EDT 2009


Author: heiko.braun at jboss.com
Date: 2009-08-18 06:19:57 -0400 (Tue, 18 Aug 2009)
New Revision: 758

Modified:
   bpm-console/trunk/BPMC.iws
   bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
   bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java
   bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
   bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
   bpm-console/trunk/gui/war/src/main/resources/jmaki/xhp/xhp.json
   bpm-console/trunk/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java
   bpm-console/trunk/server/war/src/main/webapp/WEB-INF/web.xml
   bpm-console/trunk/server/war/src/main/webapp/login_failed.html
   bpm-console/trunk/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java
Log:
Revamp BPMC-9: Session management and form based authentication

Modified: bpm-console/trunk/BPMC.iws
===================================================================
--- bpm-console/trunk/BPMC.iws	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/BPMC.iws	2009-08-18 10:19:57 UTC (rev 758)
@@ -17,8 +17,16 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java" afterPath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/server/war/src/main/webapp/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/server/war/src/main/webapp/WEB-INF/web.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/BPMC.iws" afterPath="$PROJECT_DIR$/BPMC.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/common/AbstractRESTAction.java" afterPath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/common/AbstractRESTAction.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java" afterPath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java" afterPath="$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java" afterPath="$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java" afterPath="$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java" afterPath="$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/server/war/src/main/webapp/login_failed.html" afterPath="$PROJECT_DIR$/server/war/src/main/webapp/login_failed.html" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/gui/war/src/main/resources/jmaki/xhp/xhp.json" afterPath="$PROJECT_DIR$/gui/war/src/main/resources/jmaki/xhp/xhp.json" />
     </list>
     <list name="Failed commit: Default" comment="remove dependency on DTOParser" />
   </component>
@@ -90,6 +98,60 @@
     <disable_hints />
   </component>
   <component name="DebuggerManager">
+    <line_breakpoints>
+      <breakpoint url="file://$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java" line="113" class="org.jboss.bpm.console.server.UserMgmtFacade" package="org.jboss.bpm.console.server">
+        <option name="ENABLED" value="true" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+      <breakpoint url="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java" line="265" class="org.jboss.bpm.console.client.task.AssignedTasksView" package="org.jboss.bpm.console.client.task">
+        <option name="ENABLED" value="true" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+      <breakpoint url="file://$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server/FormProcessingFacade.java" line="151" class="org.jboss.bpm.console.server.FormProcessingFacade" package="org.jboss.bpm.console.server">
+        <option name="ENABLED" value="true" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+      <breakpoint url="file://$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/HttpClient.java" line="59" class="jmaki.xhp.HttpClient" package="jmaki.xhp">
+        <option name="ENABLED" value="true" />
+        <option name="SUSPEND_POLICY" value="SuspendAll" />
+        <option name="LOG_ENABLED" value="false" />
+        <option name="LOG_EXPRESSION_ENABLED" value="false" />
+        <option name="COUNT_FILTER_ENABLED" value="false" />
+        <option name="COUNT_FILTER" value="0" />
+        <option name="CONDITION_ENABLED" value="false" />
+        <option name="CLASS_FILTERS_ENABLED" value="false" />
+        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
+        <option name="CONDITION" value="" />
+        <option name="LOG_MESSAGE" value="" />
+      </breakpoint>
+    </line_breakpoints>
     <breakpoint_any>
       <breakpoint>
         <option name="NOTIFY_CAUGHT" value="true" />
@@ -144,10 +206,10 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="AbstractRESTAction.java" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/common/AbstractRESTAction.java">
+      <file leaf-file-name="Authentication.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="54" column="82" selection-start="2205" selection-end="2205" vertical-scroll-proportion="0.49689442">
+            <state line="116" column="6" selection-start="3663" selection-end="3663" vertical-scroll-proportion="0.5042424">
               <folding />
             </state>
           </provider>
@@ -248,6 +310,172 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/webapp" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/webapp" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/webapp/WEB-INF" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="server-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="gui-war" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
         </PATH_ELEMENT>
@@ -391,7 +619,151 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/resources" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
       </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="gui-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/resources" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/resources/jmaki" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/resources/jmaki/xhp" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="gui-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="gui-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="BPMC.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="gui-war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/jmaki" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
     </subPane>
   </component>
   <component name="ProjectReloadState">
@@ -405,7 +777,7 @@
       <showLibraryContents />
       <hideEmptyPackages PackagesPane="false" ProjectPane="false" />
       <abbreviatePackageNames />
-      <showStructure Scope="false" ProjectPane="false" PackagesPane="false" Favorites="false" />
+      <showStructure Favorites="false" ProjectPane="false" Scope="false" PackagesPane="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -450,18 +822,6 @@
   </component>
   <component name="RestoreUpdateTree" />
   <component name="RunManager" selected="Remote.GWT">
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
-      <option name="VM_PARAMETERS" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-    </configuration>
     <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
       <option name="MAIN_CLASS_NAME" />
       <option name="VM_PARAMETERS" />
@@ -501,6 +861,18 @@
       <option name="HOST" value="localhost" />
       <option name="PORT" value="5005" />
     </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+    </configuration>
     <configuration default="false" name="GWT" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
       <option name="SERVER_MODE" value="false" />
@@ -517,6 +889,22 @@
         <option name="Make" value="true" />
       </method>
     </configuration>
+    <configuration default="false" name="server" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="8787" />
+      <RunnerSettings RunnerId="Debug">
+        <option name="DEBUG_PORT" value="8787" />
+        <option name="TRANSPORT" value="0" />
+        <option name="LOCAL" value="false" />
+      </RunnerSettings>
+      <ConfigurationWrapper RunnerId="Debug" />
+      <method>
+        <option name="Make" value="true" />
+      </method>
+    </configuration>
     <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
       <Host>localhost</Host>
       <Port>5050</Port>
@@ -597,16 +985,16 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="381" y="43" width="1268" height="967" extended-state="0" />
+    <frame x="400" y="39" width="1240" height="972" extended-state="0" />
     <editor active="true" />
     <layout>
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="7" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33305988" order="0" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.40895522" order="1" />
-      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24937028" order="1" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33224222" order="0" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.40342858" order="1" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24769102" order="1" />
       <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32992035" order="8" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
@@ -618,7 +1006,7 @@
       <window_info id="Maven" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24937028" order="2" />
       <window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3995381" order="4" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39855942" order="4" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="0" />
       <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32873562" order="8" />
@@ -709,100 +1097,110 @@
     <option name="myLastEditedConfigurable" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/gui/profiles/pom.xml">
+    <entry file="file://$PROJECT_DIR$/server/war/src/main/webapp/login.html">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="14" column="27" selection-start="514" selection-end="514" vertical-scroll-proportion="0.28681177">
+        <state line="8" column="0" selection-start="211" selection-end="211" vertical-scroll-proportion="0.16537468">
           <folding />
         </state>
       </provider>
+      <provider editor-type-id="HtmlPreview">
+        <state />
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/workspace/workspace-api/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/common/AbstractRESTAction.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="23" column="49" selection-start="597" selection-end="597" vertical-scroll-proportion="0.47119078">
+        <state line="75" column="31" selection-start="2900" selection-end="2900" vertical-scroll-proportion="-1.2771618">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/server/integration/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/XmlHttpProxy.java">
       <provider selected="true" editor-type-id="text-editor">
+        <state line="134" column="51" selection-start="5908" selection-end="5908" vertical-scroll-proportion="0.14453125">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/webapp/WEB-INF/web.xml">
+      <provider selected="true" editor-type-id="text-editor">
         <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/profiles/riftsaw/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="5" column="51" selection-start="310" selection-end="310" vertical-scroll-proportion="0.13071896">
+        <state line="61" column="6" selection-start="2009" selection-end="2009" vertical-scroll-proportion="0.019753087">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/profiles/jbpm/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/resources/jmaki/xhp/xhp.json">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="19" column="0" selection-start="671" selection-end="671" vertical-scroll-proportion="0.49673203">
+        <state line="5" column="27" selection-start="162" selection-end="162" vertical-scroll-proportion="0.096969694">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/process/UpdateDefinitionsAction.java">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/jmaki/xhp/HttpClient.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="43" column="54" selection-start="1888" selection-end="1888" vertical-scroll-proportion="0.2875817">
+        <state line="78" column="66" selection-start="2330" selection-end="2330" vertical-scroll-proportion="0.01939394">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java">
+    <entry file="file://$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/ConsoleConfig.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="162" column="0" selection-start="4660" selection-end="4660" vertical-scroll-proportion="0.23444976">
+        <state line="104" column="22" selection-start="3184" selection-end="3184" vertical-scroll-proportion="0.01939394">
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/server/war/src/main/webapp/WEB-INF/web.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="54" column="42" selection-start="0" selection-end="2257" vertical-scroll-proportion="0.20893142">
+        <state line="28" column="49" selection-start="894" selection-end="894" vertical-scroll-proportion="0.01939394">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/war/src/main/templates/WEB-INF/jboss-web.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="10" column="41" selection-start="263" selection-end="285" vertical-scroll-proportion="0.0">
+        <state line="156" column="32" selection-start="2405" selection-end="4698" vertical-scroll-proportion="-1.4">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/war/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/task/AssignedTasksView.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="253" column="15" selection-start="7293" selection-end="7833" vertical-scroll-proportion="0.0">
+        <state line="274" column="30" selection-start="8948" selection-end="8948" vertical-scroll-proportion="0.61777776">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/server/war/pom.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="304" column="33" selection-start="8849" selection-end="8849" vertical-scroll-proportion="0.70186335">
+        <state line="98" column="42" selection-start="3339" selection-end="3339" vertical-scroll-proportion="1.2731183">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/pom.xml">
+    <entry file="file://$PROJECT_DIR$/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="23" column="0" selection-start="710" selection-end="710" vertical-scroll-proportion="0.45714286">
+        <state line="79" column="23" selection-start="2564" selection-end="2564" vertical-scroll-proportion="0.9955556">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/server/war/src/main/templates/WEB-INF/jboss-web.xml">
+    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="0" selection-start="179" selection-end="179" vertical-scroll-proportion="0.13658537">
+        <state line="31" column="13" selection-start="1338" selection-end="1338" vertical-scroll-proportion="0.28444445">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/gui/war/src/main/java/org/jboss/bpm/console/client/common/AbstractRESTAction.java">
+    <entry file="file://$PROJECT_DIR$/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="54" column="82" selection-start="2205" selection-end="2205" vertical-scroll-proportion="0.49689442">
+        <state line="116" column="6" selection-start="3663" selection-end="3663" vertical-scroll-proportion="0.5042424">
           <folding />
         </state>
       </provider>

Modified: bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/gui/war/src/main/java/jmaki/xhp/XmlHttpProxyServlet.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -59,6 +59,7 @@
     if (rDebug) {
       logger = getLogger();
     }
+      
   }
 
   public void init(ServletConfig config) throws ServletException {
@@ -315,13 +316,17 @@
             sb.append(serviceURL);
 
             // override service url and url params
-            String path = req.getPathInfo();
+            String path = req.getRequestURI();
             path = path.substring(path.indexOf("xhp/")+3, path.length());
 
             StringTokenizer tok = new StringTokenizer(path, "/");
             while(tok.hasMoreTokens())
             {
-              sb.append("/").append(URLEncoder.encode(tok.nextToken()));
+              String token = tok.nextToken();
+              if(token.indexOf(";")!=-1)
+                sb.append("/").append(token);    // ;JSESSIONID=XYZ
+              else
+                sb.append("/").append(URLEncoder.encode(token));
             }
 
             sb.append("?").append(req.getQueryString());

Modified: bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/Header.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -96,7 +96,7 @@
 
       public void onClick(Widget widget)
       {
-        appContext.getAuthentication().doLogout();
+        appContext.getAuthentication().logout();
       }
     }
     );

Modified: bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/LoginView.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -22,12 +22,8 @@
 package org.jboss.bpm.console.client;
 
 import com.google.gwt.core.client.GWT;
-import com.google.gwt.http.client.Request;
-import com.google.gwt.http.client.Response;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.WindowCloseListener;
+import com.google.gwt.http.client.*;
+import com.google.gwt.user.client.*;
 import com.google.gwt.user.client.ui.*;
 import com.mvc4g.client.Controller;
 import com.mvc4g.client.ViewInterface;
@@ -42,17 +38,17 @@
 {
   public final static String NAME = "loginView";
 
-  private ConsoleConfig config;  
+  private ConsoleConfig config;
   private Authentication auth;
 
   private WindowPanel window = null;
   private TextBox usernameInput;
   private PasswordTextBox passwordInput;
 
-  public final static String[] KNOWN_ROLES = {"admin", "manager", "user"};
-
   private Controller controller;
 
+  public final static String[] KNOWN_ROLES = {"admin", "manager", "user"};
+    
   public LoginView()
   {
 
@@ -62,11 +58,11 @@
     {
       proxyUrl = GWT.getModuleBaseURL() + "xhp";
     }
-    
+
     config = new ConsoleConfig(proxyUrl);
     ConsoleLog.debug("Console server: " + config.getConsoleServerUrl());
 
-    URLBuilder.configureInstance(config);    
+    URLBuilder.configureInstance(config);
   }
 
   public void setController(Controller controller)
@@ -76,12 +72,89 @@
 
   public void display()
   {
-    createLayoutWindowPanel();
-    window.center();
+    requestSessionID();
+  }
 
-    // focus
-    usernameInput.setFocus(true);
+  private void requestSessionID()
+  {
+    RequestBuilder rb = new RequestBuilder(
+        RequestBuilder.GET,
+        config.getConsoleServerUrl()+"/rs/identity/sid"
+    );
 
+    try
+    {
+      rb.sendRequest(null, new RequestCallback()
+      {
+
+        public void onResponseReceived(Request request, Response response)
+        {
+          ConsoleLog.debug("SID: "+ response.getText());
+          ConsoleLog.debug("Cookies: "+ Cookies.getCookieNames());
+          final String sid = response.getText();
+
+          auth = new Authentication(
+              config,
+              sid,
+              URLBuilder.getInstance().getUserInRoleURL(KNOWN_ROLES)
+          );
+
+          auth.setCallback(
+              new Authentication.AuthCallback()
+              {
+
+                public void onLoginSuccess(Request request, Response response)
+                {
+                  // clear the form
+                  usernameInput.setText("");
+                  passwordInput.setText("");
+
+                  // display main console
+                  window.hide();
+
+                  // assemble main layout
+                  DeferredCommand.addCommand(
+                      new Command()
+                      {
+                        public void execute()
+                        {
+                          // move the loading div to foreground
+                          DOM.getElementById("splash").getStyle().setProperty("z-index", "1000");
+                          DOM.getElementById("ui_loading").getStyle().setProperty("visibility", "visible");
+                          new MainLayout(controller, auth, config);
+                        }
+                      });
+
+                  window = null;
+                }
+
+                public void onLoginFailed(Request request, Throwable t)
+                {
+                  // auth failed
+                  ConsoleLog.error("Authentication failed", t);
+                }
+              }
+          );
+
+
+          createLayoutWindowPanel();
+          window.center();
+
+          // focus
+          usernameInput.setFocus(true);
+
+        }
+
+        public void onError(Request request, Throwable t)
+        {
+          ConsoleLog.error("Failed to initiate session", t);
+        }
+      });
+    }
+    catch (RequestException e)
+    {
+      ConsoleLog.error("Request error", e);
+    }
   }
 
   /**
@@ -106,8 +179,6 @@
         return null;
       }
     });
-
-
   }
 
   /**
@@ -124,7 +195,7 @@
 
       public void onClick(Widget widget)
       {
-        doLoginRequest();
+        engageLogin();
       }
     });
 
@@ -135,53 +206,55 @@
 
   }
 
-  private void doLoginRequest()
+  private void engageLogin()
+  {    
+    requestProtectedResource();
+  }
+
+  /**
+   * The j_security_check URL is a kind of temporary resource that only exists
+   * if the tomcat decided that the login page should be shown.
+   */
+  private void requestProtectedResource()
   {
-    String user = usernameInput.getText();
-    String pass = passwordInput.getText();
+    RequestBuilder rb = new RequestBuilder(
+        RequestBuilder.GET,
+        config.getConsoleServerUrl()+"/rs/identity/secure/sid"
+    );
 
-    String url = URLBuilder.getInstance().getUserInRoleURL(KNOWN_ROLES);
-    auth = new Authentication(url);
-    auth.setCallback(
-        new Authentication.AuthCallback()
+    try
+    {
+      rb.sendRequest(null, new RequestCallback()
+      {
+
+        public void onResponseReceived(Request request, Response response)
         {
+          ConsoleLog.debug("requestProtectedResource() HTTP "+response.getStatusCode());
+          auth.login( getUsername(), getPassword() );
+        }
 
-          public void onLoginSuccess(Request request, Response response)
-          {
-            // clear the form
-            usernameInput.setText("");
-            passwordInput.setText("");
-
-            // display main console
-            window.hide();
-
-            // assemble main layout
-            DeferredCommand.addCommand(
-                new Command()
-                {
-                  public void execute()
-                  {
-                    // move the loading div to foreground
-                    DOM.getElementById("splash").getStyle().setProperty("z-index", "1000");
-                    DOM.getElementById("ui_loading").getStyle().setProperty("visibility", "visible");
-                    new MainLayout(controller, auth, config);
-                  }
-                });
-
-            window = null;
-          }
-
-          public void onLoginFailed(Request request, Throwable t)
-          {
-            // auth failed
-            ConsoleLog.error("Authentication failed", t);
-          }
+        public void onError(Request request, Throwable t)
+        {
+          ConsoleLog.error("Failed to request protected resource", t);
         }
-    );
+      });
+    }
+    catch (RequestException e)
+    {
+      ConsoleLog.error("Request error", e);
+    }
+  }
 
-    auth.doLogin(user, pass);
+  private String getUsername()
+  {
+    return usernameInput.getText();
   }
 
+  private String getPassword()
+  {
+    return passwordInput.getText();
+  }
+  
   private Widget createForm()
   {
     LayoutPanel p = new LayoutPanel(new BoxLayout(BoxLayout.Orientation.VERTICAL));
@@ -217,11 +290,12 @@
           {
             if(c == KeyboardListener.KEY_ENTER)
             {
-              doLoginRequest();
+              engageLogin();
             }
           }
         }
     );
     return p;
   }
+
 }

Modified: bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java
===================================================================
--- bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/gui/war/src/main/java/org/jboss/bpm/console/client/URLBuilder.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -73,7 +73,7 @@
       if (i < possibleRoles.length - 1)
         sb.append(",");
     }
-    return config.getConsoleServerUrl() + "/rs/identity/user/roles?roleCheck=" + sb.toString();
+    return config.getConsoleServerUrl() + "/rs/identity/user/roles;JSESSIONID="+Authentication.getSid()+"?roleCheck=" + sb.toString();
   }
 
   public String getServerStatusURL()

Modified: bpm-console/trunk/gui/war/src/main/resources/jmaki/xhp/xhp.json
===================================================================
--- bpm-console/trunk/gui/war/src/main/resources/jmaki/xhp/xhp.json	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/gui/war/src/main/resources/jmaki/xhp/xhp.json	2009-08-18 10:19:57 UTC (rev 758)
@@ -3,9 +3,7 @@
     "services": [
         {"id": "default",
          "url":"http://localhost:8080/gwt-console-server",
-         "passthrough":true,
-         "username":"peter",
-         "password":"password"
+         "passthrough":true
         },
         {"id": "birt",
          "url":"http://localhost:8080/gwt-console-server",

Modified: bpm-console/trunk/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java
===================================================================
--- bpm-console/trunk/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/server/war/src/main/java/org/jboss/bpm/console/server/UserMgmtFacade.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -66,6 +66,40 @@
   }
 
   @GET
+  @Path("sid")
+  @Produces("text/plain")
+  public Response getSessionID(
+      @Context
+      HttpServletRequest request
+  )
+  {
+    return Response.ok(request.getSession().getId()).build();
+  }
+
+  @POST
+  @Path("sid/invalidate")
+  @Produces("text/plain")
+  public Response destroySession(
+      @Context
+      HttpServletRequest request
+  )
+  {
+    request.getSession().invalidate();
+    return Response.ok().build();
+  }
+
+  @GET
+  @Path("secure/sid")
+  @Produces("text/plain")
+  public Response getSessionIDSecure(
+      @Context
+      HttpServletRequest request
+  )
+  {
+    return Response.ok(request.getSession().getId()).build();
+  }
+
+  @GET
   @Path("user/roles")
   @Produces("application/json")
   public Response getRolesForJAASPrincipal(

Modified: bpm-console/trunk/server/war/src/main/webapp/WEB-INF/web.xml
===================================================================
--- bpm-console/trunk/server/war/src/main/webapp/WEB-INF/web.xml	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/server/war/src/main/webapp/WEB-INF/web.xml	2009-08-18 10:19:57 UTC (rev 758)
@@ -49,12 +49,13 @@
 
   <security-constraint>
     <web-resource-collection>
-      <web-resource-name>Resteasy</web-resource-name>
+      <web-resource-name>Resteasy</web-resource-name>      
       <url-pattern>/rs/process/*</url-pattern>
       <url-pattern>/rs/task/*</url-pattern>
       <url-pattern>/rs/form/*</url-pattern>
       <url-pattern>/rs/tasks/*</url-pattern>
-      <url-pattern>/rs/identity/*</url-pattern>
+      <url-pattern>/rs/identity/user/*</url-pattern>
+      <url-pattern>/rs/identity/secure/*</url-pattern>
     </web-resource-collection>
     <auth-constraint>
       <role-name>administrator</role-name>
@@ -63,9 +64,17 @@
     </auth-constraint>
   </security-constraint>
 
-  <login-config>
+  <!--login-config>
     <auth-method>BASIC</auth-method>
     <realm-name>GWT Console Server</realm-name>
+  </login-config-->
+
+  <login-config>
+    <auth-method>FORM</auth-method>
+    <form-login-config>
+      <form-login-page>/login.html</form-login-page>
+      <form-error-page>/login_failed.html</form-error-page>
+    </form-login-config>
   </login-config>
 
   <security-role>

Modified: bpm-console/trunk/server/war/src/main/webapp/login_failed.html
===================================================================
--- bpm-console/trunk/server/war/src/main/webapp/login_failed.html	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/server/war/src/main/webapp/login_failed.html	2009-08-18 10:19:57 UTC (rev 758)
@@ -1,5 +1,6 @@
 <html>
 <body>
-Login failed!
+Login failed!<br>
+<a href="/gwt-console-server/login.html">Retry</a>
 </body>
 </html>
\ No newline at end of file

Modified: bpm-console/trunk/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java
===================================================================
--- bpm-console/trunk/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java	2009-08-18 10:19:50 UTC (rev 757)
+++ bpm-console/trunk/workspace/workspace-api/src/main/java/org/jboss/bpm/console/client/Authentication.java	2009-08-18 10:19:57 UTC (rev 758)
@@ -21,50 +21,86 @@
  */
 package org.jboss.bpm.console.client;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.http.client.*;
 import com.google.gwt.json.client.JSONArray;
 import com.google.gwt.json.client.JSONObject;
 import com.google.gwt.json.client.JSONParser;
 import com.google.gwt.json.client.JSONValue;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
 import org.jboss.bpm.console.client.util.ConsoleLog;
 import org.jboss.bpm.console.client.util.JSONWalk;
 
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * Does HTTP Basic Auth and keeps assigned roles
- * (piggy backed on response) and the username that was used.
- *
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
 public class Authentication
-{
-  private String loginUrl;
+{  
   private AuthCallback callback;
+
   private List<String> rolesAssigned = new ArrayList<String>();
+
+  private static String sid;
   private String username;
   private String password;
 
-  public Authentication(String loginUrl)
+  private ConsoleConfig config;
+  private String rolesUrl;
+
+  public Authentication(ConsoleConfig config, String sessionID, String rolesUrl)
   {
-    this.loginUrl = loginUrl;
+    this.config = config;
+    this.sid = sessionID;
+    this.rolesUrl = rolesUrl;
   }
 
-  public Authentication(String loginUrl, AuthCallback callback)
+  public static String getSid()
   {
-    this.loginUrl = loginUrl;
-    this.callback = callback;
+    return sid;
   }
+  
+  public void login(String user, String pass)
+  {
+    this.username = user;
+    this.password = pass;
+    
+    String formAction = config.getConsoleServerUrl() + "/rs/identity/secure/j_security_check";
+    RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, formAction);
+    rb.setHeader("Content-Type", "application/x-www-form-urlencoded");
+    
+    try
+    {
+      rb.sendRequest("j_username="+user+"&j_password="+pass,
+          new RequestCallback()
+          {
 
-  /**
-   * Login, but leave credentials to GWT.
-   * This will pop up a username/password dialog netive to the browser.
-   */
-  public void doLogin()
-  {
-    doLogin(null, null);
+            public void onResponseReceived(Request request, Response response)
+            {
+              ConsoleLog.debug("postLoginCredentials() HTTP "+response.getStatusCode());
+
+              DeferredCommand.addCommand(
+                  new Command()
+                  {
+
+                    public void execute()
+                    {
+                      requestAssignedRoles();
+                    }
+                  }
+              );
+            }
+
+            public void onError(Request request, Throwable t)
+            {
+              ConsoleLog.error("Faile to submit authenticate", t);
+            }
+          }
+      );
+    }
+    catch (RequestException e)
+    {
+      ConsoleLog.error("Request error", e);
+    }
   }
 
   /**
@@ -72,16 +108,13 @@
    * This delegates to {@link com.google.gwt.http.client.RequestBuilder#setUser(String)}
    * and {@link com.google.gwt.http.client.RequestBuilder#setPassword(String)}
    */
-  public void doLogin(String user, String pass)
+  private void requestAssignedRoles()
   {
+    RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, rolesUrl );
+    
+    ConsoleLog.debug("Request roles: " + rb.getUrl());
 
-    RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, loginUrl);
-    this.username = user;
-    this.password = pass;
-
-    ConsoleLog.debug("Authentication against: " + rb.getUrl());
-
-    if (user != null && pass != null)
+    /*if (user != null && pass != null)
     {
       rb.setUser(user);
       rb.setPassword(pass);
@@ -91,7 +124,7 @@
         rb.setHeader("xtest-user", user);
         rb.setHeader("xtest-pass", pass); // NOTE: This is plaintext, use for testing only
       }
-    }
+    }*/
 
     try
     {
@@ -101,6 +134,8 @@
 
             public void onResponseReceived(Request request, Response response)
             {
+              ConsoleLog.debug("requestAssignedRoles() HTTP "+response.getStatusCode());
+
               // parse roles
               if (200 == response.getStatusCode())
               {
@@ -138,11 +173,49 @@
     this.callback = callback;
   }
 
-  public native void doLogout() /*-{
+  private native void reload() /*-{
        $wnd.location.reload();
      }-*/;
 
+  public void logout()
+  {
+    RequestBuilder rb = new RequestBuilder(
+        RequestBuilder.POST,
+        config.getConsoleServerUrl()+"/rs/identity/sid/invalidate"
+    );
 
+    try
+    {
+      rb.sendRequest(null, new RequestCallback()
+      {
+        public void onResponseReceived(Request request, Response response)
+        {
+          ConsoleLog.debug("logout() HTTP "+response.getStatusCode());
+          resetState();
+          reload();
+        }
+
+        public void onError(Request request, Throwable t)
+        {
+          ConsoleLog.error("Failed to invalidate session", t);
+        }
+      });
+    }
+    catch (RequestException e)
+    {
+      ConsoleLog.error("Request error", e);
+    }
+  }
+
+  private void resetState()
+  {
+    sid = null;
+    username = null;
+    password = null;
+    rolesAssigned = new ArrayList<String>();
+  }
+
+
   public interface AuthCallback
   {
     void onLoginSuccess(Request request, Response response);
@@ -170,9 +243,7 @@
   {
     // parse roles
     List<String> roles = new ArrayList<String>();
-
-    // {"roles":[{"isAssigned":true,"role":"admin"},{"isAssigned":true,"role":"user"}]}
-
+    
     JSONValue root = JSONParser.parse(json);
     JSONArray array = JSONWalk.on(root).next("roles").asArray();
 



More information about the overlord-commits mailing list