projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix E4 log out and browser refresh
[lgpl/argeo-commons.git]
/
org.argeo.cms.e4
/
src
/
org
/
argeo
/
cms
/
e4
/
handlers
/
CloseWorkbench.java
diff --git
a/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java
b/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java
index 1444ec365ab2974b801746187d5f0166e56476e7..a365f3d7d13f40fda6beedd3602701c7e59073a9 100644
(file)
--- a/
org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java
+++ b/
org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java
@@
-1,11
+1,28
@@
package org.argeo.cms.e4.handlers;
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) {
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();
}
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);
+ }
+ }
+
}
}