2015-06-25 17 views
7

Desidero implementare filtri personalizzati per il mio proxy Zuul. Ora, so che c'è stato molto parlare di quell'argomento here e ho dato un'occhiata alla risposta fornita, con gli esempi di filtri e la documentazione Spring Cloud, che ho attraversato diverse volte. Ho provato a copiare alcuni dei contenuti dei filtri per il mio utilizzo, ma non ha funzionato.Creazione di filtri Zuul personalizzati

Ho un server Eureka, che registra 3 servizi separati, uno dei quali è la porta principale degli altri due, raccoglie informazioni da ciascuno di essi e lo recupera.

Quello che voglio essere in grado di fare è re-instradare le richieste che Zuul riceve all'inizio del processo, per reindirizzare attraverso servizi particolari, usando i parametri URL per determinare quale processo dovrebbe essere mirato invece di un altro. Ho già creato un filtro taggato con l'annotazione @Component, implementando ZuulFilter. Quello che non so è come far funzionare i reindirizzamenti e quali metodi usare.

Quindi, la domanda è: come posso reindirizzare le richieste in entrata a diversi servizi registrati, utilizzando i parametri URL?

risposta

8

Vedere PreDecorationFilter per un esempio che corrisponde ai percorsi in base al percorso dell'URL (ad es. /myservice). Se corrisponde a un URL completo, imposta lo routeHost nel contesto della barra multifunzione, altrimenti imposta serviceId (che utilizza la barra multifunzione per instradare). Avresti bisogno di scrivere qualcosa di simile che potrebbe corrispondere al parametro.

+0

grazie. Daro 'un'occhiata a quello adesso e torno da te. – chesh

+0

Ho dato un'occhiata al codice che mostri sul tuo progetto e devo dire che non ho molta configurazione, dato che il mio server Zuul è una semplice app di primavera con '@ EnableZuulProxy'. Mi manca qualche tipo di configurazione per poter aggiungere filtri? O è sufficiente per me crearne uno, inserire un'annotazione '@ Bean' su di esso ed eseguire il server? – chesh

+1

Il progetto che ti ho mostrato è la fonte, quindi ovviamente non hai molta configurazione. Sì, creare un filtro con '@ Bean 'è ciò che devi fare. – spencergibb