diff --git a/src/main/resources/META-INF/frontpage.html b/gcube/extra-resources/META-INF/frontpage.html similarity index 100% rename from src/main/resources/META-INF/frontpage.html rename to gcube/extra-resources/META-INF/frontpage.html diff --git a/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/gcube/extra-resources/META-INF/services/javax.servlet.ServletContainerInitializer similarity index 100% rename from src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer rename to gcube/extra-resources/META-INF/services/javax.servlet.ServletContainerInitializer diff --git a/pom.xml b/pom.xml index fab527a..d290cb7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ maven-parent org.gcube.tools - 1.1.0 + 1.2.0 org.gcube.core @@ -24,7 +24,7 @@ - 8.0.42 + 9.0.85 UTF-8 11 11 diff --git a/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java b/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java index 175ac93..2e0a395 100644 --- a/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java +++ b/src/main/java/org/gcube/smartgears/managers/ApplicationManager.java @@ -81,10 +81,6 @@ public class ApplicationManager { ApplicationHandlers handlers = provider().handlersFor(context); - /* - extensions = provider().extensionsFor(context); - extensions.validate(); - */ List lifecycleHandlers = handlers.lifecycleHandlers(); List requestHandlers = handlers.requestHandlers(); @@ -99,7 +95,7 @@ public class ApplicationManager { registerExtension(extensions); // then intercept them all - registerHandlers(requestHandlers); + registerHandlersAsFilter(requestHandlers); // start lifecycle management start(lifecycleHandlers); @@ -171,29 +167,18 @@ public class ApplicationManager { } - private void registerHandlers(List rqHandlers) { + private void registerHandlersAsFilter(List rqHandlers) { ServletContext app = context.application(); - // attach filters based on request pipeline to each servlet - Collection servlets = app.getServletRegistrations().values(); + String appName = app.getContextPath().replace("/", ""); + + RequestManager requestFilter = new RequestManager(context, appName, rqHandlers); - for (ServletRegistration servlet : servlets) { + FilterRegistration.Dynamic filter = app.addFilter(appName + "-filter", requestFilter); - String name = servlet.getName(); + filter.addMappingForUrlPatterns(null, false, "/*"); - if (name.equals("default") || name.equals("jsp")) // skip page-resolving servlets - continue; - - for (String mapping : servlet.getMappings()) { - - RequestManager requestFilter = new RequestManager(context, name, rqHandlers); - - FilterRegistration.Dynamic filter = app.addFilter(name + "-filter-"+mapping.replaceAll("/", ""), requestFilter); - - filter.addMappingForUrlPatterns(null, false, mapping); - } - } } private void registerExtension(List extensions) { diff --git a/src/main/java/org/gcube/smartgears/managers/RequestManager.java b/src/main/java/org/gcube/smartgears/managers/RequestManager.java index 4e0414d..4bf17c8 100644 --- a/src/main/java/org/gcube/smartgears/managers/RequestManager.java +++ b/src/main/java/org/gcube/smartgears/managers/RequestManager.java @@ -66,7 +66,9 @@ public class RequestManager implements Filter { HttpServletRequest httprequest = (HttpServletRequest) request; HttpServletResponse httpresponse = (HttpServletResponse) response; - + + log.warn("request filter for app {} applied to {}", this.servlet, httprequest.getServletContext().getContextPath()); + List filterHandlers = getPipelineHandlers(httprequest, handlers); if (filterHandlers.isEmpty()){ diff --git a/src/main/resources/META-INF/.gitignore b/src/main/resources/META-INF/.gitignore deleted file mode 100644 index b5c4b2d..0000000 --- a/src/main/resources/META-INF/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/smartgears-config.xml