X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.servlet%2Fsrc%2Forg%2Fargeo%2Fcms%2Fservlet%2FServletAuthUtils.java;h=7719658d706df89320689a672a9b60354d69e938;hb=beec30ca4ad6e0a27b3fe984d987b98988e14e76;hp=67db467ce25a62f19a5aec82821e0e4d41efd729;hpb=406efdadf16d13ee40e1ce75177dcda775dd7abd;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.servlet/src/org/argeo/cms/servlet/ServletAuthUtils.java b/org.argeo.cms.servlet/src/org/argeo/cms/servlet/ServletAuthUtils.java index 67db467ce..7719658d7 100644 --- a/org.argeo.cms.servlet/src/org/argeo/cms/servlet/ServletAuthUtils.java +++ b/org.argeo.cms.servlet/src/org/argeo/cms/servlet/ServletAuthUtils.java @@ -6,24 +6,24 @@ import java.security.PrivilegedAction; import java.util.function.Supplier; import javax.security.auth.Subject; -import javax.servlet.http.HttpServletRequest; import org.argeo.api.cms.CmsSession; import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.auth.HttpRequest; import org.argeo.cms.osgi.CmsOsgiUtils; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; -import org.osgi.service.http.HttpContext; /** Authentications utilities when using servlets. */ public class ServletAuthUtils { + static final String REMOTE_USER = "org.osgi.service.http.authentication.remote.user"; private static BundleContext bundleContext = FrameworkUtil.getBundle(ServletAuthUtils.class).getBundleContext(); /** * Execute this supplier, using the CMS class loader as context classloader. * Useful to log in to JCR. */ - public final static T doAs(Supplier supplier, HttpServletRequest req) { + public final static T doAs(Supplier supplier, HttpRequest req) { ClassLoader currentContextCl = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(ServletAuthUtils.class.getClassLoader()); try { @@ -42,22 +42,22 @@ public class ServletAuthUtils { } } - public final static void configureRequestSecurity(HttpServletRequest req) { + public final static void configureRequestSecurity(HttpRequest req) { if (req.getAttribute(AccessControlContext.class.getName()) != null) throw new IllegalStateException("Request already authenticated."); AccessControlContext acc = AccessController.getContext(); - req.setAttribute(HttpContext.REMOTE_USER, CurrentUser.getUsername()); + req.setAttribute(REMOTE_USER, CurrentUser.getUsername()); req.setAttribute(AccessControlContext.class.getName(), acc); } - public final static void clearRequestSecurity(HttpServletRequest req) { + public final static void clearRequestSecurity(HttpRequest req) { if (req.getAttribute(AccessControlContext.class.getName()) == null) throw new IllegalStateException("Cannot clear non-authenticated request."); - req.setAttribute(HttpContext.REMOTE_USER, null); + req.setAttribute(REMOTE_USER, null); req.setAttribute(AccessControlContext.class.getName(), null); } - public static CmsSession getCmsSession(HttpServletRequest req) { + public static CmsSession getCmsSession(HttpRequest req) { Subject subject = Subject .getSubject((AccessControlContext) req.getAttribute(AccessControlContext.class.getName())); CmsSession cmsSession = CmsOsgiUtils.getCmsSession(bundleContext, subject);