في الآونة الأخيرة ، عند كتابة مشاريع مع SpringMVC ، واجهت مشكلة ، وهي مشكلة المصادقة للطريقة. تم حل هذه المشكلة ليوم واحد وحلها أخيرًا. دعونا نلقي نظرة على الحل أدناه.
متطلبات المشروع: عند الحاجة إلى المصادقة ، أحتاج فقط إلى تسميةها ، مثل العملية التي يمكن تنفيذها فقط بواسطة تسجيل الدخول إلى المستخدم. بشكل عام ، سوف نتحقق أولاً من إدخال هوية المستخدم عند تنفيذ الطريقة ، والتي تزيد بشكل غير مرئي الكثير من عبء العمل وإعادة إنشاء العجلة. مع تعليقات Java ، تحتاج فقط إلى تسميةها على الطريقة التي تتطلب المصادقة:
حل:
1. أولاً إنشاء فصل شرح:
@documented@inlorited@target ({elementType.method ، elementType.type})@entry (attreentionpolicy.runtime) public interface auth {boolean viality () default true ؛}2. إنشاء اعتراض آخر:
يمتد AuthInterceptor من الفئة العامة يمتد BaseInterceptor {Override public boolean prehandle (httpservletrequest طلب ، httpservletresponse ، معالج الكائن) يلقي استثناء {if (handler.getClass (). isassignablefrom (handlermethod.class)) معالج) .getmethodannotation (auth.class) ؛ // لم يتم الإعلان عن أي إذن ، أو لا يُعلن أنه لا يتم التحقق من إذن إذا (AuthPassport == null) {return true ؛ التحقق ") ؛ return true ؛} آخر {// إذا فشل التحقق // العودة إلى واجهة تسجيل الدخول // system.out.println (" التحقق من الإذن صحيح ") ؛ // response.sendredirect (" حساب/تسجيل الدخول ") ؛ إرجاع خطأ ؛3. قم بتكوين Interceptor: تحتاج إلى إضافة الكود التالي إلى *-servlet.xml. إذا قمت بتخصيص ملف التكوين ، فيمكنك أيضًا وضعه مباشرة في ملف التكوين الذي حددته.
<MVC: Interceptors> <Bean/> </mvc: Interceptors>
ملاحظة: تحتاج إلى تغيير الافتراضي إلى طلب requappingHandLermapping وإضافة Bean of requestMappingHandlerAdapter
فقط أعد تشغيل Tomcat.
تذكير دافئ: إذا كنت بحاجة إلى مصادقة للطريقة ، فأنت بحاجة فقط إلى كتابة Auth على الطريقة. إذا كنت بحاجة إلى مصادقة لجميع طرق الفصل ، فأنت بحاجة فقط إلى كتابة Auth على الفصل.
وبالتالي فإن المشكلة هي أن اعتراض الطريقة سوف يعترض الموارد الثابتة معًا. نحتاج إلى اعتراض الملفات الثابتة في Tomcat ، مثل: الحل الخاص بي هو تكوينها في web.xml. إذا كان لديك طريقة جيدة ، فيمكنك أيضًا إضافتي QQ 752432995 لمناقشتها.
<Sradlet-mapping> <Sradlet-Name> افتراضي </servlet-name> <Url-pattern>*.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة حول رمز الحل الخاص بتعليق التعليقات التوضيحية المستخدمة في springMVC لمصادقة الطريقة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
ينفذ اعتراض springmvc علامة واحدة
شرح مفصل حول ما إذا كان اعتراض SPRINGMVC ينتهي صلاحية جلسة المراقبة
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!