X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.e4%2Fsrc%2Forg%2Fargeo%2Fcms%2Fe4%2Fhandlers%2FCloseWorkbench.java;h=a365f3d7d13f40fda6beedd3602701c7e59073a9;hb=8267fad4498b78552b784dcbcb7f9e03a53ee4ba;hp=1444ec365ab2974b801746187d5f0166e56476e7;hpb=5be89e9714847a692c12057a059f16e78064a676;p=lgpl%2Fargeo-commons.git 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 1444ec365..a365f3d7d 100644 --- 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; +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); + } + } + }