Fix E4 log out and browser refresh
[lgpl/argeo-commons.git] / org.argeo.cms.e4 / src / org / argeo / cms / e4 / handlers / CloseWorkbench.java
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);
+               }
+       }
+
 }