X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fservlet%2FCmsServletContext.java;h=9ff8f855f662db1c14bd8e2f33bfce8417123f3a;hb=3779305ca2c08e66d9ba2061c76eb79e278860fb;hp=03a7551f01c568c84449fe3f44163c8600be4616;hpb=c7e195eb2bad923662e6aa116359ca473dee337f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/servlet/CmsServletContext.java b/org.argeo.cms/src/org/argeo/cms/servlet/CmsServletContext.java index 03a7551f0..9ff8f855f 100644 --- a/org.argeo.cms/src/org/argeo/cms/servlet/CmsServletContext.java +++ b/org.argeo.cms/src/org/argeo/cms/servlet/CmsServletContext.java @@ -2,8 +2,10 @@ package org.argeo.cms.servlet; import java.io.IOException; import java.net.URL; +import java.security.PrivilegedAction; import java.util.Map; +import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import javax.servlet.http.HttpServletRequest; @@ -50,9 +52,27 @@ public class CmsServletContext extends ServletContextHelper { if (lc == null) return false; } + + Subject subject = lc.getSubject(); + //log.debug("SERVLET CONTEXT: "+subject); + Subject.doAs(subject, new PrivilegedAction() { + + @Override + public Void run() { + // TODO also set login context in order to log out ? + ServletAuthUtils.configureRequestSecurity(request); + return null; + } + + }); return true; } + @Override + public void finishSecurity(HttpServletRequest request, HttpServletResponse response) { + ServletAuthUtils.clearRequestSecurity(request); + } + protected LoginContext processUnauthorized(HttpServletRequest request, HttpServletResponse response) { // anonymous try {