diff options
3 files changed, 66 insertions, 0 deletions
diff --git a/src/com.gluster.storage.management.server/WebContent/WEB-INF/web.xml b/src/com.gluster.storage.management.server/WebContent/WEB-INF/web.xml index 34337a5d..6d7d1406 100644 --- a/src/com.gluster.storage.management.server/WebContent/WEB-INF/web.xml +++ b/src/com.gluster.storage.management.server/WebContent/WEB-INF/web.xml @@ -37,6 +37,10 @@ <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.gluster.storage.management.server.resources</param-value> </init-param> + <init-param> + <param-name>com.sun.jersey.spi.container.ResourceFilters</param-name> + <param-value>com.gluster.storage.management.server.filters.GlusterResourceFilterFactory</param-value> + </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/AuditFilter.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/AuditFilter.java new file mode 100644 index 00000000..b23d9c4f --- /dev/null +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/AuditFilter.java @@ -0,0 +1,31 @@ +/** + * + */ +package com.gluster.storage.management.server.filters; + +import com.sun.jersey.spi.container.ContainerRequest; +import com.sun.jersey.spi.container.ContainerRequestFilter; +import com.sun.jersey.spi.container.ContainerResponseFilter; +import com.sun.jersey.spi.container.ResourceFilter; + +/** + * Resource filter for maintaining audit trail of resource access + */ +public class AuditFilter implements ResourceFilter, ContainerRequestFilter { + + @Override + public ContainerRequestFilter getRequestFilter() { + return this; + } + + @Override + public ContainerResponseFilter getResponseFilter() { + return null; + } + + @Override + public ContainerRequest filter(ContainerRequest req) { + System.out.println("Resource access [" + req.getMethod() + "][" + req.getPath() + "]"); + return req; + } +} diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/GlusterResourceFilterFactory.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/GlusterResourceFilterFactory.java new file mode 100644 index 00000000..899ba16e --- /dev/null +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/GlusterResourceFilterFactory.java @@ -0,0 +1,31 @@ +/** + * + */ +package com.gluster.storage.management.server.filters; + +import java.util.ArrayList; +import java.util.List; + +import com.sun.jersey.api.model.AbstractMethod; +import com.sun.jersey.spi.container.ResourceFilter; +import com.sun.jersey.spi.container.ResourceFilterFactory; + +/** + * Gluster resource filter factory. As of now, this creates only one filter - the audit filter {@code AuditFilter} + */ +public class GlusterResourceFilterFactory implements ResourceFilterFactory { + + public GlusterResourceFilterFactory() { + } + + /* (non-Javadoc) + * @see com.sun.jersey.spi.container.ResourceFilterFactory#create(com.sun.jersey.api.model.AbstractMethod) + */ + @Override + public List<ResourceFilter> create(AbstractMethod arg0) { + List<ResourceFilter> filters = new ArrayList<ResourceFilter>(); + filters.add(new AuditFilter()); + + return filters; + } +} |
