Spring Security登录页面URL参数

时间:2018-07-30 19:23:41

标签: java spring-security

我正在尝试对我的应用程序进行本地化,该应用程序很容易通过Spring本地化和url参数来实现,该应用程序在每个页面上都可以正常运行,除了登录页面,其中Spring Security剥离了必需的“ lang”参数,并且该页面默认为英语。我尝试通过LoginUrlAuthenticationEntryPoint实现自定义登录过滤器,像这样覆盖了defineUrlToUseForThisRequest:

{
  "name": "test app",
  "version": "1.0.0",
  "scripts": {
    "start": "sh redis-start-script.sh && **your start script**"   
  }
}

但是,此操作以永久重定向循环结束。请注意,我的spring安全配置类在理论上确实允许登录页面上的请求参数:

 @Override
protected String determineUrlToUseForThisRequest(HttpServletRequest request, HttpServletResponse response,
    AuthenticationException exception) {
String url = super.determineUrlToUseForThisRequest(request, response, exception);
return url + "?" + request.getQueryString();
}

但是我想实现“ / user?lang = en”,它在当前状态下重定向到“ / user”,因此“ lang”参数被忽略。

在此先感谢您提供任何提示。

1 个答案:

答案 0 :(得分:0)

我设法通过简单地删除登录页面上的所有限制来找到解决方案,例如:

.authorizeRequests().antMatchers("/user").permitAll()

通过这种方式,不需要自定义LoginUrlAuthenticationEntryPoint,并且保留所有url参数!

感谢所有输入。