View Javadoc

1   package com.atlassian.plugins.rest.common.security.jersey;
2   
3   import com.google.common.base.Preconditions;
4   import com.sun.jersey.api.model.AbstractMethod;
5   import com.sun.jersey.spi.container.ResourceFilter;
6   import com.sun.jersey.spi.container.ResourceFilterFactory;
7   import com.atlassian.plugins.rest.common.security.AuthenticationContext;
8   
9   import javax.ws.rs.ext.Provider;
10  import java.util.Collections;
11  import java.util.List;
12  
13  /**
14   * A {@link ResourceFilterFactory} that checks whether the client is authenticated or not.
15   * <p>
16   *
17   * @see AuthenticatedResourceFilter
18   */
19  @Provider
20  public class AuthenticatedResourceFilterFactory implements ResourceFilterFactory {
21      private final AuthenticationContext authenticationContext;
22  
23      public AuthenticatedResourceFilterFactory(final AuthenticationContext authenticationContext) {
24          this.authenticationContext = Preconditions.checkNotNull(authenticationContext);
25      }
26  
27      public List<ResourceFilter> create(AbstractMethod abstractMethod) {
28          return Collections.<ResourceFilter>singletonList(new AuthenticatedResourceFilter(abstractMethod, authenticationContext));
29      }
30  }