From 4d2d8d8003f6b2afb2f207a1aa7bb205929559aa Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 5 Jun 2022 09:36:43 +0200 Subject: [PATCH] Fix anonymous login --- org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java | 1 + .../cms/internal/runtime/DeployedContentRepository.java | 8 ++++---- .../src/org/argeo/cms/web/CmsWebEntryPoint.java | 8 ++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java index 4998c89ff..928afc0d5 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java @@ -142,6 +142,7 @@ class CmsAuthUtils { currentLocalSession.close(); // new CMS session cmsSession = new WebCmsSessionImpl(subject, authorization, locale, request); + CmsContextImpl.getCmsContext().registerCmsSession(cmsSession); } else if (!authorization.getName().equals(currentLocalSession.getAuthorization().getName())) { throw new IllegalStateException("Inconsistent user " + authorization.getName() + " for existing CMS session " + currentLocalSession); diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java index 4fee40688..7d3eb283b 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java @@ -17,11 +17,11 @@ public class DeployedContentRepository extends CmsContentRepository { public void start() { super.start(); Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML); - initRootContentProvider(rootXml); + initRootContentProvider(null); - Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); - FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false); - addProvider(srvContentProvider); +// Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE); +// FsContentProvider srvContentProvider = new FsContentProvider("/" + CmsConstants.SRV_WORKSPACE, srvPath, false); +// addProvider(srvContentProvider); } @Override diff --git a/rap/org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java b/rap/org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java index c82aca728..2eb783527 100644 --- a/rap/org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java +++ b/rap/org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java @@ -89,7 +89,9 @@ public class CmsWebEntryPoint implements EntryPoint, CmsView, BrowserNavigationL lc.login(); } catch (LoginException e) { try { - lc = new LoginContext(CmsAuth.LOGIN_CONTEXT_ANONYMOUS); + lc = new LoginContext(CmsAuth.LOGIN_CONTEXT_ANONYMOUS, + new RemoteAuthCallbackHandler(new ServletHttpRequest(UiContext.getHttpRequest()), + new ServletHttpResponse(UiContext.getHttpResponse()))); lc.login(); } catch (LoginException e1) { throw new IllegalStateException("Cannot log in as anonymous", e1); @@ -154,7 +156,9 @@ public class CmsWebEntryPoint implements EntryPoint, CmsView, BrowserNavigationL try { CurrentUser.logoutCmsSession(loginContext.getSubject()); loginContext.logout(); - LoginContext anonymousLc = new LoginContext(CmsAuth.LOGIN_CONTEXT_ANONYMOUS); + LoginContext anonymousLc = new LoginContext(CmsAuth.LOGIN_CONTEXT_ANONYMOUS, + new RemoteAuthCallbackHandler(new ServletHttpRequest(UiContext.getHttpRequest()), + new ServletHttpResponse(UiContext.getHttpResponse()))); anonymousLc.login(); authChange(anonymousLc); } catch (LoginException e) { -- 2.30.2