]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeHttp.java
Improve login mechanism, based on JAAS
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeHttp.java
index 490a1134f4f19ffac9d9ca4ac0ee730389c6bcd5..f0fbe461a1dfc8ecc5d5c5be3862c60587d48983 100644 (file)
@@ -23,7 +23,6 @@ import org.argeo.jackrabbit.servlet.WebdavServlet;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.eclipse.equinox.http.servlet.ExtendedHttpService;
 import org.eclipse.jetty.servlets.DoSFilter;
-import org.eclipse.jetty.servlets.QoSFilter;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.http.NamespaceException;
 import org.osgi.util.tracker.ServiceTracker;
@@ -53,8 +52,8 @@ class NodeHttp implements KernelConstants, ArgeoJcrConstants {
 
        // Filters
        private final RootFilter rootFilter;
-       private final DoSFilter dosFilter;
-       private final QoSFilter qosFilter;
+       // private final DoSFilter dosFilter;
+       // private final QoSFilter qosFilter;
 
        // remoting
        private OpenInViewSessionProvider sessionProvider;
@@ -84,8 +83,8 @@ class NodeHttp implements KernelConstants, ArgeoJcrConstants {
 
                // Filters
                rootFilter = new RootFilter();
-               dosFilter = new CustomDosFilter();
-               qosFilter = new QoSFilter();
+               // dosFilter = new CustomDosFilter();
+               // qosFilter = new QoSFilter();
 
                // DAV
                sessionProvider = new OpenInViewSessionProvider();
@@ -106,9 +105,9 @@ class NodeHttp implements KernelConstants, ArgeoJcrConstants {
                        registerRemotingServlet(PATH_REMOTING_PRIVATE, ALIAS_NODE, false,
                                        privateRemotingServlet);
 
-                       httpService.registerFilter("/", dosFilter, null, null);
+                       // httpService.registerFilter("/", dosFilter, null, null);
                        httpService.registerFilter("/", rootFilter, null, null);
-                       httpService.registerFilter("/", qosFilter, null, null);
+                       // httpService.registerFilter("/", qosFilter, null, null);
                } catch (Exception e) {
                        throw new CmsException("Cannot publish HTTP services to OSGi", e);
                }
@@ -230,9 +229,11 @@ class NodeHttp implements KernelConstants, ArgeoJcrConstants {
                        }
 
                        // redirect long RWT paths to anchor
-                       String path = request.getRequestURI()
-                                       .substring(servletPath.length()).trim();
-                       if (!servletPath.endsWith("rwt-resources") && !path.equals("")
+                       String path = request.getRequestURI().substring(
+                                       servletPath.length());
+                       int pathLength = path.length();
+                       if (pathLength != 0 && (path.charAt(0) == '/')
+                                       && !servletPath.endsWith("rwt-resources")
                                        && !path.equals("/")) {
                                String newLocation = request.getServletPath() + "#" + path;
                                response.setHeader("Location", newLocation);