From b4b26424230c0ef25a65bc3de51c30e16ae868aa Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 14 May 2015 17:38:16 +0000 Subject: [PATCH] Better deal with authentication corner cases git-svn-id: https://svn.argeo.org/commons/trunk@8107 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org/argeo/cms/AbstractCmsEntryPoint.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/org.argeo.cms/src/org/argeo/cms/AbstractCmsEntryPoint.java b/org.argeo.cms/src/org/argeo/cms/AbstractCmsEntryPoint.java index 9a7f6412e..02e08f2af 100644 --- a/org.argeo.cms/src/org/argeo/cms/AbstractCmsEntryPoint.java +++ b/org.argeo.cms/src/org/argeo/cms/AbstractCmsEntryPoint.java @@ -160,7 +160,26 @@ public abstract class AbstractCmsEntryPoint extends AbstractEntryPoint session = repository.login(workspace); if (currentPath != null) - node = session.getNode(currentPath); + try { + node = session.getNode(currentPath); + } catch (Exception e) { + try { + // TODO find a less hacky way to log out + new ArgeoLoginContext( + KernelHeader.LOGIN_CONTEXT_ANONYMOUS, subject) + .logout(); + new ArgeoLoginContext( + KernelHeader.LOGIN_CONTEXT_ANONYMOUS, subject) + .login(); + } catch (LoginException eAnonymous) { + throw new ArgeoException("Cannot reset to anonymous", + eAnonymous); + } + JcrUtils.logoutQuietly(session); + session = repository.login(workspace); + navigateTo("~"); + throw e; + } // refresh UI refresh(); -- 2.30.2