Spring Boot-redirect auf die aktuelle Seite nach dem erfolgreichen login
Habe ich die login-Formulare in modal windows. Nach dem erfolgreichen login der Benutzer umgeleitet wird, um /
Seite. Ich bin versucht, eine Methode zu finden, um bleiben auf der Kontakt-Seite oder einer anderen Seite nach dem login. Wie Sie dies tun? Mein code ist:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/css/**","/js/**","/fonts/**","/images/**","/home","/","/kontakt").permitAll()
.antMatchers("/userlist").hasRole("ADMIN")
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/");
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie benutzerdefinierte
AuthenticationSuccessHandler
- und set -useReferer
zutrue
.Und in Ihrem
configure
Methode:Nur eine alternative Lösung:
defaultSuccessUrl
ist eine Verknüpfung zum hinzufügen von benutzerdefiniertenSuccessHandler
.defaultSuccessUrl
ist eine Abkürzung fürSavedRequestAwareAuthenticationSuccessHandler
nicht für eine benutzerdefinierteSuccessHandler
.Können Sie auch tun es in Ihrem
AuthenticationSuccessHandler
Umsetzung:Hatte ich ein komisches Problem, würde dazu führen, dass auf login umleiten der Benutzer zu
localhost:8080/js/bootstrap.min.js
Wenn jemand erlebt eine seltsame Umleitung auf login, das scheint das überschreiben der
.defaultSuccessUrl()
, dann versuchen Sie, diesen code unten inSecurityConfig
:Fügen Sie alle Ihre
Resources/static
Ordner, um dieantMatchers()
Frühjahr route, ala erweitern
SavedRequestAwareAuthenticationSuccessHandler
oderSimpleUrlAuthenticationSuccessHandler
kann sein ein bisschen umständlich zu implementieren. In der Steuerung (ex. eine, die Prozesse, logins), können Sie die header-Anfrage selbst; ex:HttpServletRequest request =null;
String priorUrl = request.getHeader("Referer");
Werden Sie feststellen, dass Sie die URL vor, die entweder eine manuelle (durch Benutzer initiiert) logout oder session-timeout (wie behandelt Spring session): Sie erhalten eine
https://iAmPriorUrl.com/...
. Dann können Sie tun, was Sie will.@Jonas Alles, was Sie tun müssen, ist hinzuzufügen .requestCache() am Ende
Ihnen config sieht wie folgt