Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!