Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

208
Vistas
Spring Cloud Zuul: Aplicar filtro solo a ruta específica

Estoy usando Zuul de Spring Cloud para enviar algunas solicitudes de API a algunos servidores externos. El proxy en sí funciona bien, pero cada servicio requiere un token (diferente) proporcionado en el encabezado de la solicitud.

Escribí con éxito un filtro previo simple para cada token que aplica el encabezado apropiado. Sin embargo, ahora tengo un problema. Incluso después de revisar la documentación, no puedo descifrar cómo hacer que cada filtro se aplique solo a la ruta adecuada. No quiero realizar la coincidencia de URL a medida que la URL cambia en los entornos. Idealmente, tendría alguna forma de obtener el nombre de la ruta en el filtro.

Mi aplicación.yml:

 zuul: routes: foo: path: /foo/** url: https://fooserver.com bar: path: /bar/** url: https://barserver.com

Idealmente, me gustaría hacer algo como esto en FooFilter.java (un prefiltro):

 public bool shouldFilter() { return RequestContext.getCurrentContext().getRouteName().equals("foo"); }

pero parece que no puedo encontrar ninguna manera de hacer esto.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar el encabezado de proxy en RequestContext para distinguir el servidor enrutado como se muestra a continuación. Si está usando una cinta, también puede usar el encabezado serviceId . Pero si especifica la URL directamente como arriba de su ejemplo, debe usar el encabezado del proxy . Una cosa que debe saber es que el encabezado del proxy está configurado en PreDecorationFilter , por lo que su filtro previo debe tener un valor de orden de filtro mayor que el valor que tiene PreDecorationFilter (es 5 en este momento).

 @Override public int filterOrder() { return 10; } @Override public boolean shouldFilter() { RequestContext ctx = RequestContext.getCurrentContext(); if ((ctx.get("proxy") != null) && ctx.get("proxy").equals("foo")) { return true; } return false; }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda