Wir sind mit Federsicherheits Version 4.2.3,Make Frühjahr `login` Filter verfügbar über GET
ich konfigurieren möchten, dass die login
Filter über GET
zur Verfügung. (Standardmäßig Aufruf http://127.0.0.1/login
mit GET
http Methode gibt 404
.)
Um dies zu tun, erweitere ich die UsernamePasswordAuthenticationFilter
meine eigenen Filter zu konfigurieren und konfigurieren, wie unten
<beans:bean id="myUsernamePasswordAuthenticationFilter"
class="foo.bar.MyUsernamePasswordAuthenticationFilter">
<beans:property name="authenticationManager" ref="authenticationManager"/>
<beans:property name="postOnly" value="false"/>
</beans:bean>
und auch
<http entry-point-ref="authenticationEntryPoint">
<custom-filter before="FORM_LOGIN_FILTER" ref="myUsernamePasswordAuthenticationFilter"/>
......
Es funktioniert nicht!
Während debug finde ich, dass es eine hart codierte Linie an UsernamePasswordAuthenticationFilter
Konstruktor, wie unten:
public UsernamePasswordAuthenticationFilter() {
super(new AntPathRequestMatcher("/login", "POST"));
}
ich denken , diese Ursache, dass die AntPathRequestMatcher.matches
immer false
Nun zurückkehren kann ich Konfigurieren Sie den Filter login
, um über GET
verfügbar zu sein. Also wird http://127.0.0.1/login/username=foo&bar=bar
angerufen werden? Wie ?
@dur es hat funktioniert! Der Aufruf von 'setRequiresAuthenticationRequestMatcher (neuer AntPathRequestMatcher ("/login "," GET "));' im 'myUsernamePasswordAuthenticationFilter'-Konstruktor löste das Problem. Bitte sende es als Antwort, damit ich es annehmen kann! –