2016-03-23 12 views
0

Wir haben einen ZUUL "Pre" -Filter, der nach einer bestimmten Bedingung sucht und die Standardantwort selbst zurückgibt, wenn eine bestimmte API (/ abc) aufgerufen wird. Wenn die Bedingung nicht erfüllt ist, geben wir die Antwort von der API zurück.Spring-Cloud "Pre" ZUUL Filter

Die API ist in einem Service verfügbar, der für Eureka registriert ist.

Problem: Die Standardantwort wird an den Client zurückgegeben, aber die Anfrage wird auch an den Dienst gesendet, im Grunde wird auch die API/abc aufgerufen, wir wollen nicht, dass die API aufgerufen wird. Wie sollen wir das machen?

Lassen Sie mich wissen, wenn Sie irgendwelche Details oder Code-Schnipsel benötigen. Vielen Dank.

+2

ja mehr Details oder Code wäre hilfreich. – spencergibb

Antwort

0

Sie könnten versuchen, setSendZuulResponse(false) im aktuellen Kontext zu setzen. Dies sollte die Anfrage nicht auf die API leiten. Sie könnten auch removeRouteHost() aus dem Kontext, der das gleiche erreichen würde.

0

In run() Methode der benutzerdefinierten ZuulFilter Sie folgende Anweisung platzieren Verarbeitung der Anforderung weiter und sofort zurück den Fehler JSON zu vermeiden:

this.setFailedRequest ("Custom zuul Filter hat einige Fehler.", 401);