我正在尝试对我的应用程序进行本地化,该应用程序很容易通过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”参数被忽略。
在此先感谢您提供任何提示。
答案 0 :(得分:0)
我设法通过简单地删除登录页面上的所有限制来找到解决方案,例如:
.authorizeRequests().antMatchers("/user").permitAll()
通过这种方式,不需要自定义LoginUrlAuthenticationEntryPoint,并且保留所有url参数!
感谢所有输入。