معلمات عنوان URL لتسجيل دخول Spring Security

0

أحاول ترجمة تطبيقي الذي يسهل تنفيذه إلى حد ما من خلال توطين 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".

شكرا سلفا على أي نصائح.

1 إجابة

0

لقد تمكنت من العثور على حل ببساطة عن طريق إزالة جميع القيود على صفحة تسجيل الدخول مثل ذلك:

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

وبهذه الطريقة ، لا يلزم تسجيل الدخول إلىUUrlAuthenticationEntryPoint ويتم الاحتفاظ بكل معلمات عنوان url!

شكرا لجميع المدخلات.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام