Método de intercepción en Jersey utilizando Guice AOP.

¿Es posible usar Guice AOP para interceptar un método anotado en un recurso de Jersey?

Tengo una integración de Guice configurada con éxito que funciona con Jersey con respecto a la inyección de dependencia sin ningún problema, sin embargo, mi Interceptor configurado no está interceptando mi método anotado en absoluto.

web.xml

<listener>
    <listener-class>my.package.GuiceConfig</listener-class>
</listener>
<filter>
    <filter-name>guiceFilter</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>guiceFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Módulo de configuración GuiceConfig

public class GuiceConfig extends GuiceServletContextListener {

@Override
protected Injector getInjector() {
    return Guice.createInjector(new JerseyServletModule() {

            @Override
            protected void configureServlets() {

                bindInterceptor(Matchers.any(), 
                                Matchers.annotatedWith(RequiredAuthority.class), 
                                new AuthorisationInterceptor());

                Map<String, String> params = new HashMap<String, String>(); 
                params.put(JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp"); 
                params.put(FEATURE_FILTER_FORWARD_ON_404, "true");
                params.put(PROPERTY_PACKAGES, "my.service.package");

                filter("/*").through(GuiceContainer.class, params);
            } 
        });
    }
}

Requisito de anotación de autoridad

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiredAuthority {
    String value();
}

Autorización: aspecto interceptor.

public class AuthorisationInterceptor implements MethodInterceptor {

    public Object invoke(MethodInvocation methodInvocation) throws Throwable {

        // Allow invocation to process or throw an appropriate exception
    }
}

Clase de recurso TempResource JAX-RS

@Path("/temp")
public class TempResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @RequiredAuthority("PERMISSION")
    public String getTemp() {

        // Return resource normally
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta