لماذا يعطي تسجيل مستخدم جديد باستخدام المكون الإضافي ACEGI لـ Grails "دورًا افتراضيًا غير موجود". خطأ

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

سؤال

ربما وضعت بطريقة مختلفة ، كيف يمكنني إعداد دور أمان افتراضي للمستخدمين المسجلين حديثًا في Grails باستخدام Teh Acegi Plug-in؟

لقد تابعت البرنامج التعليمي ACEGI/GRAILS هنا وأنا أستخدم تعليقات التحكم في وحدة التحكم - على الرغم من أنني لم أؤمن أي شيء بعد.

لقد أضفت دورًا آخر يسمى Web_User وأضفت مستخدمًا بنجاح إلى هذا الدور.

عندما أستخدم وحدة التحكم في التسجيل ، قدمت مستخدمًا جديدًا آخر ، ومع ذلك ، أحصل على رسالة خطأ من Grails قولها "Default role not found".

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

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

ما هو يعني المقصود تحديد دور افتراضي ، ولماذا أحصل على هذه الرسالة.

أوه ، وكيف تنطق Acegi؟

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

المحلول

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

يمكنك تعيين الدور الافتراضي في SecurityConfig.groovy مع سمة "Defaultrole". بشكل افتراضي ، إنه "rob_user" ولكن يمكن أن يكون ما تريد. يجب أن يكون هناك مثيل للسلطة مع هذه القيمة قبل أن يتمكن المستخدمون من التسجيل.

النطق في الأسئلة الشائعة - http://www.acegisecurity.org/faq.html

نصائح أخرى

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

الرسالة "الدور الافتراضي غير الموجود" غامضة في كيفية قراءتها.

اعتقدت أولاً أن "أنت بحاجة إلى تحديد دور افتراضي في مكان ما حتى يتم تعيين المستخدمين المسجلين حديثًا".

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

إنه أمر يذهلني أن جزءًا من توليد ميزات الأمن يجب أن يضيف فقط rob_admin و role_user إلى bootstrap قاعدة البيانات بطريقة أو بأخرى وفعلت مع إمكانية الخطأ.

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