أحاول ترجمة تطبيقي الذي يسهل تنفيذه إلى حد ما من خلال توطين Spring ومعلمات url التي تعمل بشكل جيد في كل صفحة باستثناء صفحة تسجيل الدخول حيث يقوم Spring Security بتجريد المعلمة "lang" الإلزامية والصفحة الافتراضية إلى اللغة الإنجليزية. لقد حاولت تنفيذ عامل تصفية مخصص لتسجيل الدخول من خلال LoginUrlAuthenticationEntryPoint ، متجاوزًا تحديدUrlToUseForThisRequest مثل ذلك:
@Override
protected String determineUrlToUseForThisRequest(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) {
String url = super.determineUrlToUseForThisRequest(request, response, exception);
return url + "?" + request.getQueryString();
}
ولكن هذا ينتهي في حلقة إعادة توجيه دائمة. لاحظ أن فئة تكوين الأمان الربيعي تسمح نظريًا بطلب المعلمات على صفحة تسجيل الدخول:
http
.and().formLogin().loginPage("/user").permitAll()
لكني أريد تحقيق "/ user؟ lang = en" الذي يتم إعادة توجيهه في الحالة الحالية إلى "/ user" وبالتالي يتم تجاهل المعلمة "lang".
شكرا سلفا على أي نصائح.