X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.suite.e4.rap%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fe4%2Frap%2FArgeoSuiteLoginLifecycle.java;h=6b4197c9a035e3c3abfec37e66ea88318858224e;hb=19301ef6555ee03f1d7b9b0764c2d40b5ef6654b;hp=32623110eae8006d672cfc07e5988758057a594a;hpb=91ba500dcfe75cde313a513e341b7f9f57d64d75;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoSuiteLoginLifecycle.java b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoSuiteLoginLifecycle.java index 3262311..6b4197c 100644 --- a/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoSuiteLoginLifecycle.java +++ b/org.argeo.suite.e4.rap/src/org/argeo/suite/e4/rap/ArgeoSuiteLoginLifecycle.java @@ -12,6 +12,7 @@ import javax.security.auth.Subject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.argeo.api.NodeConstants; import org.argeo.cms.e4.rap.CmsLoginLifecycle; import org.argeo.connect.ui.SystemWorkbenchService; import org.argeo.jcr.JcrUtils; @@ -36,31 +37,34 @@ public class ArgeoSuiteLoginLifecycle extends CmsLoginLifecycle { private void loadState() { String state = getState(); - if (state != null && state.startsWith("/")) { - Session session = null; - try { - Subject subject = getSubject(); - session = Subject.doAs(subject, new PrivilegedExceptionAction() { + // for the time being we systematically open a session, in order to make sure + // that home is initialised + Session session = null; + try { + Subject subject = getSubject(); + session = Subject.doAs(subject, new PrivilegedExceptionAction() { - @Override - public Session run() throws PrivilegedActionException { - try { - return repository.login(); - } catch (RepositoryException e) { - throw new PrivilegedActionException(e); - } + @Override + public Session run() throws PrivilegedActionException { + try { + return repository.login(NodeConstants.HOME_WORKSPACE); + } catch (RepositoryException e) { + throw new PrivilegedActionException(e); } + } - }); + }); + if (state != null && state.startsWith("/")) { if (state.startsWith("/")) { Node node = session.getNode(state); systemWorkbenchService.openEntityEditor(node); } - } catch (RepositoryException | PrivilegedActionException e) { - log.error("Cannot load state " + state, e); - } finally { - JcrUtils.logoutQuietly(session); } + } catch (RepositoryException | PrivilegedActionException e) { + log.error("Cannot load state " + state, e); + getBrowserNavigation().pushState("~", null); + } finally { + JcrUtils.logoutQuietly(session); } } }