تأمين بعض، ولكن ليس كل الصفحات في تطبيقات الشيرو مع البرنامج المساعد Shiro

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

  •  18-09-2019
  •  | 
  •  

سؤال

قد يكون لي فقط، لكن لدي صعوبة في فهم كيفية تأمين بعض الصفحات فقط في تطبيقات الشيرو مع البرنامج المساعد Shiro.

يمكنني استخدام هذا في مرشح الأمان الخاص بي:

Securityfilsfilters {def filters = {all (uri: "/ **") {قبل = {// تجاهل المشاهدات المباشرة (مثل صفحة الفهرس الرئيسي الافتراضي). إذا (! اسم التحكم) إرجاع True / / التحكم في الوصول حسب الاتفاقية. AccessControl (Auth: False)}}}

وقد أنشأت مستخدم في Bootstrap الخاص بي:

 Def Adminrole = دور جديد (الاسم: المسؤول "المسؤول") adminrole.addtopermissions ("secured1") adminrole.addtopermissions ("secured2: إنشاء وحفظ وتحرير وتحديث") adminrole.save () def user = مستخدم جديد (اسم المستخدم: " admin "، passwordhash: new sha512hash (" *** "). Tohex ()) user.addorolles دور user.findbyname ('المسؤول') user.save ()

ويعمل. المشكلة هي أنه يضمن أيضا جميع وحدات التحكم / الإجراءات.

كنت آمل أن يكون من الممكن عدم تحديد الإجراءات التي أرغب في حمايتها في أمنه، ولكن فقط في الأذونات .. ولكن هل هذا ممكن؟

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

المحلول

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

admin(uri:"/admin/**")
...
browseStore(controller:"store", action:"(show|list)")
...
shopStore(controller:"store", action:"*")
...

الدفع http://www.grails.org/filters. لمزيد من المعلومات.

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