كيف يمكنني تكوين Tomcat للتوجيه دائمًا إلى ملف Index.jsp بعد تسجيل الدخول؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

يقوم دعم تسجيل الدخول الخاص بـ Tomcat حاليًا بإعادة توجيه المستخدمين إلى حيث كانوا في البداية عندما اكتشف التطبيق أنهم لم يقوموا بتسجيل الدخول.

بالنسبة لهذا التطبيق بالذات، أحتاج إلى إجبارهم على العودة إليه دائمًا index.jsp.

أنا متأكد تمامًا أن هذا خيار تكوين بسيط في الحرب web.xml, لكني لم أجد الجواب في جوجل.

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

المحلول

ربما يكون الحل الأفضل هو استخدام مرشح servlet.يمكنك بعد ذلك التحقق من j_username / j_password وتسجيل الدخول الناجح وإعادة توجيههم إلى حيث تريدهم أن يذهبوا.

نصائح أخرى

إنه شيء لا يمكنك تهيئته في web.xml لأنه ليس جزءًا من المعيار.بالنسبة إلى Tomcat (الذي تم اختباره على الإصدار 6.0.14)، يمكنك إجبار المستخدمين على العودة إلى ملف Index.jsp عن طريق إضافة الكود التالي أعلى ملف تسجيل الدخول.jsp الخاص بك.فهو يعيد توجيه كل طلب لا يحتوي على معلمة باسم "تسجيل الدخول" في عنوان URL إلى صفحة /index.jsp?login.نظرًا لأن عملية إعادة التوجيه تحتوي على معلمة "تسجيل الدخول"، فسيتم عرض صفحة تسجيل الدخول للمستخدم.

إنه ليس حلاً آمنًا.إذا طلب شخص ما صفحة وأضاف معلمة تسجيل الدخول، فستتم إعادة توجيهه.لذا:

/showPerson?id=1234 سيعيد التوجيه إلى /index.jsp?login

/showPerson?id=1234?login لن يقوم بإعادة التوجيه إلى /index.jsp?login

الكود الذي يظهر أعلى تسجيل الدخول.jsp الخاص بك:

<%
if (request.getParameter("login") == null) {
    response.sendRedirect(request.getContextPath() + "/index.jsp?login");
    return;
}
%>

بدلاً من استخدام معلمة "تسجيل الدخول"، ربما يمكنك استخدام ملف تعريف الارتباط.يمكنك جعلها أكثر أمانًا عن طريق إنشاء قيمة عشوائية لمعلمة تسجيل الدخول (تسجيل الدخول = قيمة عشوائية) وتخزين القيمة في كائن الجلسة للمقارنة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top