سؤال

أنا أستخدم Spring+Tapestry لمصادقة WebUser. أتساءل هل هناك أي تقنية يمكنني فرضها جميع المستخدمين الذين يقومون بتسجيل الدخول حاليًا إلى تسجيل الدخول دعني أقول إنني في السيناريو حيث يكون الموقع "تحت وضع الصيانة"

P/S: هل ستتمكن من إجبار جميع المستخدمين على تشغيل عملية تشغيل جميع المستخدمين وتسجيل الدخول فقط

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

المحلول

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

هناك خيار آخر هو استخدام مؤقت JavaScript في التصميم - اضغط على صفحة بشكل دوري لمعرفة ما إذا كان ينبغي تسجيلها. ربما لن يسمح لهم بإنهاء طلبهم الحالي.

نصائح أخرى

شيئان يتبادرا إلى ذهني:

  • استعمال HttpSessionListener لتتبع جميع الجلسات وإبطالها عندما يحين الوقت. لاستخدام هذا ، ستحتاج إلى ملف Set من Session الكائنات في الخاص بك ServletContext (أو أفضل - كحقل ثابت). تحديث ذلك Set كلما تم إنشاء جلسة أو تدميرها ، وتكرار المجموعة عند الحاجة إلى الإبطال.

  • إستخدم Filter (تعيين ل /*) حيث ، إذا كانت هناك شروط معينة (maintenance == true) وبالتالي سيتم تسجيل جميع المستخدمين في الإجراء التالي. قد ينجح هذا في الحالات التي لا يعني فيها "وضع الصيانة" "إيقاف الخادم بأكمله" ، ولكن يعني أنه "لا ينبغي أن يقوم المستخدمون بأي عمليات ، فأنا أقوم بشيء مهم في الخلفية لا ينبغي التدخل"

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