title: JAX-RS 2.0 Filter parameters via @NameBinding annotation
body: <p>I've created some JAX-RS 2.0 resources (using Jeresey 2.4 running in a Servlet container) and a filter that handles authentication and authorisation that can be selectively applied via a @NameBinding annotation. This all works great.</p>
  
  <p>I would like to be able to define some parameters on this annotation (specifically, security permissions that are required to access each method/resource) that can be available to the filter at runtime to alter this behaviour.</p>
  
  <p>I notice that interceptors can do this via javax.ws.rs.ext.InterceptorContext.getAnnotations() but there is no equivalent in javax.ws.rs.container.ContainerRequestContext for filters. Any ideas how this may be achieved? I would like to be able to do something like the following:</p>
  
  <pre><code>@Target({TYPE, METHOD})
  @Retention(value = RetentionPolicy.RUNTIME)
  @NameBinding
  public @interface Secured {
      String[] requiredPermissions() default {};
  }
  
  @Secured
  @Priority(Priorities.AUTHENTICATION)
  public class SecurityRequestFilter implements ContainerRequestFilter {
      @Override
      public void filter(ContainerRequestContext containerRequestContext) throws IOException {
          // extract credentials, verify them and check that the user has required permissions, aborting if not
      }
  }
  
  @Path("/userConfiguration/")
  public class UserConfigurationResource {
      @GET
      @Produces(MediaType.APPLICATION_XML)
      @Secured(requiredPermissions = {"configuration-permission"})
      public Response getConfig(@Context HttpServletRequest httpServletRequest) {
          // produce a response
      }
  }
  </code></pre>