Spring Boot - 在登录页面上更改区域设置

时间:2015-10-07 13:33:39

标签: spring spring-security spring-boot

我有一个简单的表单登录的春季启动应用程序。登录正常。

http
    .authorizeRequests()
        .anyRequest().authenticated()
        .and()
    .formLogin()
        .loginPage("/login")
        .permitAll()
        .and()
    .logout()
        .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
        .logoutSuccessUrl("/login")
        .permitAll();

我还通过CookieLocaleResolver和LocaleChangeInterceptor进行国际化。这在登录时也有效。

我的问题是:

用户在登录页面时无法更改区域设置。

登录页面:https://localhost/login

更改语言区域的链接:https://localhost/login?locale=en

但用户被重定向到https://localhost/login并且语言环境保持不变。

有没有办法在登录页面允许参数?

感谢您的帮助!

1 个答案:

答案 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的参数刷新并显示登录页面以尝试验证你。