From f16c686b6e8bda61b2325b3668323517d725c9a4 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Mon, 18 Apr 2011 22:13:25 +0530 Subject: Introducing resource filter for maintaining audit trail --- .../WebContent/WEB-INF/web.xml | 4 +++ .../management/server/filters/AuditFilter.java | 31 ++++++++++++++++++++++ .../filters/GlusterResourceFilterFactory.java | 31 ++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/AuditFilter.java create mode 100644 src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/filters/GlusterResourceFilterFactory.java 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 @@ com.sun.jersey.config.property.packages com.gluster.storage.management.server.resources + + com.sun.jersey.spi.container.ResourceFilters + com.gluster.storage.management.server.filters.GlusterResourceFilterFactory + 1 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 create(AbstractMethod arg0) { + List filters = new ArrayList(); + filters.add(new AuditFilter()); + + return filters; + } +} -- cgit