X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Forg.argeo.cms.servlet%2Fsrc%2Forg%2Fargeo%2Fcms%2Fservlet%2FCmsServletContext.java;h=9cb48b212d38b5db6054c6fefac76dc00a9a00e3;hb=8302ed5e76967f1d618b59ebe4ae11223e5037c3;hp=cc2bc02d1978e46bc34e3149f0779baf2728522a;hpb=336930c69f0cd3e1242e518479624c6366541275;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/servlet/CmsServletContext.java b/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/servlet/CmsServletContext.java index cc2bc02d1..9cb48b212 100644 --- a/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/servlet/CmsServletContext.java +++ b/eclipse/org.argeo.cms.servlet/src/org/argeo/cms/servlet/CmsServletContext.java @@ -41,6 +41,8 @@ public class CmsServletContext extends ServletContextHelper { public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) throws IOException { if (log.isTraceEnabled()) HttpUtils.logRequestHeaders(log, request); + ClassLoader currentThreadContextClassLoader = Thread.currentThread().getContextClassLoader(); + Thread.currentThread().setContextClassLoader(CmsServletContext.class.getClassLoader()); LoginContext lc; try { lc = CmsAuth.USER.newLoginContext( @@ -52,6 +54,8 @@ public class CmsServletContext extends ServletContextHelper { HttpUtils.logResponseHeaders(log, response); if (lc == null) return false; + } finally { + Thread.currentThread().setContextClassLoader(currentThreadContextClassLoader); } Subject subject = lc.getSubject(); @@ -79,7 +83,7 @@ public class CmsServletContext extends ServletContextHelper { ClassLoader currentContextClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(CmsServletContext.class.getClassLoader()); - LoginContext lc = new LoginContext(CmsAuth.LOGIN_CONTEXT_ANONYMOUS, + LoginContext lc = CmsAuth.ANONYMOUS.newLoginContext( new RemoteAuthCallbackHandler(new ServletHttpRequest(request), new ServletHttpResponse(response))); lc.login(); return lc;