سؤال

أقوم بعمل تطبيق ويب يتم فيه تسجيل الدخول إلى صفحات معينة. لقد قمت بإنشاء عالم أمان JDBC في Glassfish لهذا ، واستخدمت مصادقة النموذج (على غرار الطريقة الموصوفة هنا)

أنا أستخدم قواعد التنقل لإعادة توجيه المستخدم إلى المناطق المضمونة على الموقع:

<navigation-case>
        <from-outcome>showResults</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/AvailableResults.xhtml</to-view-id>
        <redirect/>
</navigation-case>
(etc...)

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

ما هي أفضل طريقة للقيام بهذا؟ التأكد من إعادة توجيه الصفحة بدلاً من إعادة توجيهها بشكل جيد بما فيه الكفاية؟ هل يجب أن أكتب رمزًا في كل صفحة مضمنة تتحقق مما إذا كان المستخدم قد تم تسجيل الدخول أم لا؟

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

المحلول

يعتبر استخدام POST للتنقل إلى صفحة إلى صفحة ممارسة سيئة. لا تستخدم JSF h:commandLink أو h:commandButton للتنقل البسيط صفحة إلى صفحة. كلاهما يولد نموذجًا ما بعده غير ضروري تمامًا و SEO غير صديق للتنقل البسيط. بدلا من الاستخدام h:link أو h:button في حين أن. يجعل الفانيليا العادية الحصول على رابط والحصول على شكل على التوالي.

إذا كنت تقوم بتقديم نموذج نشر على أي حال وكانت صفحة النتائج مختلفة عن صفحة النموذج ، ثم باستخدام نمط PRG (ما بعد REDIRECT-GET) يعتبر ممارسة جيدة. يمكنك استخدام <redirect/> لهذا.

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