我有一个简单的表单登录的春季启动应用程序。登录正常。
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login")
.permitAll();
我还通过CookieLocaleResolver和LocaleChangeInterceptor进行国际化。这在登录时也有效。
我的问题是:
用户在登录页面时无法更改区域设置。
更改语言区域的链接:https://localhost/login?locale=en
但用户被重定向到https://localhost/login并且语言环境保持不变。
有没有办法在登录页面允许参数?
感谢您的帮助!
答案 0 :(得分:4)
遇到同样的问题,修复如下:
http
.authorizeRequests()
.antMatchers("/login/**")//Basically I'm allowing parameters for login so locale can be added and read.
.permitAll()
.anyRequest()
.fullyAuthenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/login")
.permitAll();
我认为当你更改作为参数发送的语言环境时,问题必须这样做,因为conf不允许带有/ login的参数刷新并显示登录页面以尝试验证你。