aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/aai/web/JerseyConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/aai/web/JerseyConfiguration.java')
-rw-r--r--src/main/java/org/onap/aai/web/JerseyConfiguration.java75
1 files changed, 23 insertions, 52 deletions
diff --git a/src/main/java/org/onap/aai/web/JerseyConfiguration.java b/src/main/java/org/onap/aai/web/JerseyConfiguration.java
index 436946c..629d11e 100644
--- a/src/main/java/org/onap/aai/web/JerseyConfiguration.java
+++ b/src/main/java/org/onap/aai/web/JerseyConfiguration.java
@@ -19,25 +19,28 @@
*/
package org.onap.aai.web;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Logger;
+import java.util.stream.Collectors;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+import org.apache.tinkerpop.gremlin.structure.T;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletProperties;
import org.onap.aai.rest.QueryConsumer;
import org.onap.aai.rest.util.EchoResponse;
+import org.onap.logging.filter.base.AuditLogContainerFilter;
import org.reflections.Reflections;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
-import javax.annotation.Priority;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ContainerResponseFilter;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.Logger;
-import java.util.stream.Collectors;
-
@Component
public class JerseyConfiguration extends ResourceConfig {
@@ -54,11 +57,11 @@ public class JerseyConfiguration extends ResourceConfig {
register(EchoResponse.class);
- //Request Filters
- registerFiltersForRequests();
- // Response Filters
- registerFiltersForResponses();
-
+ //Filters
+ registerFilters(ContainerRequestFilter.class);
+ registerFilters(ContainerResponseFilter.class);
+ registerFilters(AuditLogContainerFilter.class);
+
property(ServletProperties.FILTER_FORWARD_ON_404, true);
// Following registers the request headers and response headers
@@ -68,13 +71,14 @@ public class JerseyConfiguration extends ResourceConfig {
}
}
- public void registerFiltersForRequests() {
+ public <T> void registerFilters(Class<T> type) {
// Find all the classes within the interceptors package
- Reflections reflections = new Reflections("org.onap.aai.interceptors");
- // Filter them based on the clazz that was passed in
- Set<Class<? extends ContainerRequestFilter>> filters = reflections.getSubTypesOf(ContainerRequestFilter.class);
-
+ Reflections loggingReflections = new Reflections("org.onap.aai.aailog.filter");
+ Reflections reflections = new Reflections("org.onap.aai.interceptors");
+ // Filter them based on the clazz that was passed in
+ Set<Class<? extends T>> filters = loggingReflections.getSubTypesOf(type);
+ filters.addAll(reflections.getSubTypesOf(type));
// Check to ensure that each of the filter has the @Priority annotation and if not throw exception
for (Class filterClass : filters) {
@@ -84,7 +88,7 @@ public class JerseyConfiguration extends ResourceConfig {
}
// Turn the set back into a list
- List<Class<? extends ContainerRequestFilter>> filtersList = filters
+ List<Class<? extends T>> filtersList = filters
.stream()
.filter(f -> {
if (f.isAnnotationPresent(Profile.class)
@@ -101,37 +105,4 @@ public class JerseyConfiguration extends ResourceConfig {
// Then register this to the jersey application
filtersList.forEach(this::register);
}
-
- public void registerFiltersForResponses() {
-
- // Find all the classes within the interceptors package
- Reflections reflections = new Reflections("org.onap.aai.interceptors");
- // Filter them based on the clazz that was passed in
- Set<Class<? extends ContainerResponseFilter>> filters = reflections.getSubTypesOf(ContainerResponseFilter.class);
-
-
- // Check to ensure that each of the filter has the @Priority annotation and if not throw exception
- for (Class filterClass : filters) {
- if (filterClass.getAnnotation(Priority.class) == null) {
- throw new RuntimeException("Container filter " + filterClass.getName() + " does not have @Priority annotation");
- }
- }
-
- // Turn the set back into a list
- List<Class<? extends ContainerResponseFilter>> filtersList = filters.stream()
- .filter(f -> {
- if (f.isAnnotationPresent(Profile.class)
- && !env.acceptsProfiles(f.getAnnotation(Profile.class).value())) {
- return false;
- }
- return true;
- })
- .collect(Collectors.toList());
-
- // Sort them by their priority levels value
- filtersList.sort((c1, c2) -> Integer.valueOf(c1.getAnnotation(Priority.class).value()).compareTo(c2.getAnnotation(Priority.class).value()));
-
- // Then register this to the jersey application
- filtersList.forEach(this::register);
- }
}