Cq5.5 aplicando un filtro de servlet a una ruta específica

Estoy trabajando en un controlador de formulario personalizado en cq5.5 y todo va bien. Ahora estoy trabajando para bloquear parte de la seguridad y una de mis tareas es implementar un filtro de limitación de solicitudes en la ruta de los manejadores de formularios.

Actualmente tengo algo como

@Component(immediate = true, metatype = true)

@Service(javax.servlet.Filter.class)

@Properties({
  @Property(name="service.pid", value="com.xxxxxx.cq.core.filter.FormFilter",propertyPrivate=false),
  @Property(name="service.description",value="FormFilter", propertyPrivate=false),
  @Property(name="service.vendor",value="xxxxxx - Microsites", propertyPrivate=false),
  @Property(name = "filter.scope", value = "request"),
  @Property(name = "sling.filter.scope", value = "request"),
  @Property(name = "service.ranking", intValue = 100001)
})

public class FormFilter implements javax.servlet.Filter {
  private Logger LOGGER = LoggerFactory.getLogger(TrackingFilter.class.getName());
  private static final Object lock = new Object();

  @Override
  public void doFilter(ServletRequest pRequest, ServletResponse pResponse, FilterChain pChain) throws IOException, ServletException {
      //my filter stuff
  }
}

Esto funciona bien, pero me gustaría bloquearlo para que solo se ejecute en una ruta específica.

gracias por cualquier idea

---- EDICIÓN ----- Después de investigar más, encontré algunas publicaciones que indican que no hay forma de registrar un filtro en una ruta específica para el controlador ServletFilter predeterminado. Básicamente, las dos soluciones a este problema que encontré fueron crear un nuevo paquete OSGI para el filtro y registrarlo con el servicio ExtHTTPS o Whiteboard:

http://felix.apache.org/documentation/subprojects/apache-felix-http-service.html

O

Filtra la url dentro del propio filtro. Básicamente, agregue un cheque para la ruta especificada en mi filtro.

es decir:

  @Override
  public void doFilter(ServletRequest pRequest, ServletResponse pResponse, FilterChain pChain) throws IOException, ServletException {

      String path = pRequest.getContextPath();

      if (path.contains("my/matching/path")
      {
        //my filter stuff
      }
  }

Me encantaría ver si hay soluciones adicionales para este problema, pero quería compartir lo que he podido encontrar hasta el momento, con la esperanza de que esto ayude a generar más ideas o simplemente ayude a alguien con el mismo problema. tiempo en la búsqueda de google.

gracias brodie

Respuestas a la pregunta(2)

Su respuesta a la pregunta