users@jersey.java.net

Re: [Jersey] ResourceFilter to execute after the ServletFilters

From: DirkM <dirk_at_olx.com>
Date: Fri, 28 Aug 2009 15:10:18 -0500 (CDT)

Paul Sandoz wrote:
>
>
> public class MyRFF implements ResourceFilterFactory {
> private final HttpServletRequest hsr;
>
> public ResourceFilterFactory(@Context HttpServletRequest hsr) {
> this.hsr = hsr;
> }
>
> ...
>

Are you sure this will work? I thought that ResourceFilterFactories were
created at server start-up time, not when the request is received, which
means that attempting to use the HttpServletRequest parameter wouldn't make
sense.

In the
https://jersey.dev.java.net/nonav/apidocs/1.1.1-ea/jersey/com/sun/jersey/spi/container/ContainerRequestFilter.html
ContainerRequestFilter interface , the filter method already passes the
ContainerRequest object as a parameter. (ContainerRequest implements
HttpRequestContext)

For example:

public class MyFilterFactory implements ResourceFilterFactory {
    
    private class Filter implements ResourceFilter, ContainerRequestFilter {
        @Override
        public ContainerRequestFilter getRequestFilter() {
            return this;
        }

        @Override
        public ContainerResponseFilter getResponseFilter() {
            return null;
        }

        @Override
        public ContainerRequest filter(ContainerRequest request) {
            // ... do stuff here ...
            return request;
        }
    }
    
    
    @Override
    public List<ResourceFilter> create(AbstractMethod am) {
        return Collections.<ResourceFilter>singletonList(new Filter());
    }
}


-- 
View this message in context: http://n2.nabble.com/ResourceFilter-to-execute-after-the-ServletFilters-tp3534429p3537184.html
Sent from the Jersey mailing list archive at Nabble.com.