Fix E4 log out and browser refresh
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 14 May 2018 07:31:00 +0000 (09:31 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 14 May 2018 07:31:00 +0000 (09:31 +0200)
org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/CmsLoginLifecycle.java
org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java

index 040dd50862e0e50828bd0d7a18b0c9466b6ba269..615a98117f0b49fb5ba047b5af7ff875210d090f 100644 (file)
@@ -55,7 +55,7 @@ public class CmsLoginLifecycle implements CmsView {
 
        @PreSave
        void destroy() {
-               logout();
+               //logout();
        }
 
        @Override
index 1444ec365ab2974b801746187d5f0166e56476e7..a365f3d7d13f40fda6beedd3602701c7e59073a9 100644 (file)
@@ -1,11 +1,28 @@
 package org.argeo.cms.e4.handlers;
 
+import java.security.AccessController;
+
+import javax.security.auth.Subject;
+
+import org.argeo.cms.CmsException;
+import org.argeo.cms.auth.CurrentUser;
 import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.workbench.IWorkbench;
 
 public class CloseWorkbench {
        @Execute
        public void execute(IWorkbench workbench) {
+               logout();
                workbench.close();
        }
+
+       protected void logout() {
+               Subject subject = Subject.getSubject(AccessController.getContext());
+               try {
+                       CurrentUser.logoutCmsSession(subject);
+               } catch (Exception e) {
+                       throw new CmsException("Cannot log out", e);
+               }
+       }
+
 }