الأمن الربيع: كيفية الحصول على رابط الهدف الأولي

StackOverflow https://stackoverflow.com/questions/631217

  •  08-07-2019
  •  | 
  •  

سؤال

وأستخدمه أمن الربيع لعناوين المواقع المحظورة. واني اسعى الى تقديم الاشتراك وصفحة تسجيل الدخول، على نفس الصفحة.

في تسجيل الدخول تحويلات الضمان الربيع إلى صفحة مقيدة. ولكن أنا أحاول أن تمرير عنوان الموقع المستهدف لعملية التسجيل، وذلك بعد الاشتراك يمكننا إعادة توجيه إلى صفحة المقيدة.

وكيفية الحصول على URL الفعلية التي تمت إعادة توجيه المستخدم من.

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وهذه هي الطريقة التي حصلت على URL من الأمن الربيع.

SavedRequest savedRequest = (SavedRequest)session.getAttribute(
    AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY);
String requestUrl = savedRequest.getFullRequestUrl();

نصائح أخرى

وانتقلوا الأمور قليلا في مجال الأمن ربيع 3.0، وبالتالي فإن التعليمات البرمجية المتكررة أعلاه لا تعمل بعد الان. هذه الحيلة، على الرغم من:

protected String getRedirectUrl(HttpServletRequest request) {
    HttpSession session = request.getSession(false);
    if(session != null) {
        SavedRequest savedRequest = (SavedRequest) session.getAttribute(WebAttributes.SAVED_REQUEST);
        if(savedRequest != null) {
            return savedRequest.getRedirectUrl();
        }
    }

    /* return a sane default in case data isn't there */
    return request.getContextPath() + "/";
}

ومع الأمن ربيع 4.1.4:

@Override
public void onAuthenticationSuccess(HttpServletRequest request,
        HttpServletResponse response, Authentication authentication)
        throws IOException, ServletException {

    SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response);
    if (savedRequest != null) {
        response.sendRedirect(savedRequest.getRedirectUrl());
    }
    else{
        response.sendRedirect("some/path");
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top