2016-06-02 21 views
2

Ich melde mich ein @bean mit FilterRegistrationBean in meinem Frühlings-Boot-App mit Kater:Feder Filter werden für alle URLs aufgerufen und nicht die URL Pattern-Matching

Filter filter = new MyFilter() { ****populate my-header-bean from request***** }; 

List<String> urlPatterns = new ArrayList<String>(); 
urlPatterns.add("/hr/*"); 

FilterRegistrationBean registration = new FilterRegistrationBean(); 
registration.setFilter(filter); 
registration.setUrlPatterns(urlPatterns); 

Auch nach einem urlPattern angegeben ist, wird die Filter aufgerufen werden Für alle URLs verhält es sich wie /*. Gibt es eine andere Möglichkeit, einen Filter für das Filtern von HTTP-Headern für die URLs zu registrieren, die mit /hr/* übereinstimmen. Auch meine-Header-Bean im Filter soll als Feder-Autowire in meinen Controllern verfügbar sein.

+0

Haben Sie eine Lösung gefunden? – James111

+0

nein, hat nicht versucht, immer noch zu finden – Fryder

+0

schließlich gelöst dies die URL-Muster nicht beeinflussen, müssen einen alternativen Weg finden, dies zu tun. Grundsätzlich Filter hinzufügen, aber innerhalb Filter überspringen Zugriff/Zurückweisung Header-Werte auf der Grundlage ähnlicher Logik wie unten uri.startsWith ("/ swagger") || uri.startsWith ("/ webjars") || uri.startsWith ("/ v2/api-docs"); \t} – Fryder

Antwort

1

schließlich gelöst dies die URL-Muster nicht, müssen einen alternativen Weg finden, dies zu tun. Grundsätzlich Filter hinzufügen und keine Sorge URL-Muster, aber den Zugriff innerhalb Filter überspringen/Header-Werte auf der Grundlage ähnlicher Logik zurückgewiesen, wie unten

uri.startsWith("/swagger")|| uri.startsWith("/webjars")||uri.startsWith("/v2/api-docs"); 
} 

in meiner scenario..can Arbeit für ein paar ppl gearbeitet ähnliches Problem haben :)