filter chain در Spring Security چیست؟

+2 رأی
میانگین بازدید روزانه 0.4997 بازدید

لطف کنید بفرمایید filter chain در Spring Security چیست؟

What is the security filter chain?

سوال 6 ماه قبل در تالار برنامه نویسی توسط 1993 (242 امتیاز)
برچسب گذاری مجدد در 6 ماه قبل توسط moderator

2 جواب

+1 رأی
 
بهترین جواب

در حقیقت مفهوم filter chain برای Spring Security نیست و از استاندارد servlet در Java EE آمده است و Spring Security هم بدون تغییر از همان مفهوم استفاده کرده است. ایده filter chain بسیار جالب است، یک برنامه تحت وب بصورت کلی وظیفه ای جز گرفتن یک درخواست و ایجاد یک پاسخ ندارد، حالا طبق تصویز زیر مفهوم filter بین فرآیند رسیدن درخواست برای رسیدگی و تولید جواب قرار میگیرند و می توانند کارهای کلی و تکراری که لازم است برای هر درخواست و پاسخ انجام شود مثل کنترل های امنیتی یا لاگ کردن اطلاعات و ... را بر عهده میگیرند. مفهوم filter chain به ما کمک می کند براحتی فیلتر های مختلف را به هم وصل کنیم و هر وقت هم که خواستیم ترتیب اجرای آنها را عوض کنیم.

Spring Security امنیت برنامه های تحت وب را با مفهوم filter پیاده سازی کرده است و بصورت پیشفرض چند فیلتر خاص برای این منظور پیاده سازی کرده است و با آنها نیازمندی های مربوط به امنیت برنامه های تحت وب Spring را تامین می کند. حالا ممکن هست که شما برای یک نیازمندی امنیتی خاص لازم باشد یک فیلتر خاص پیاده سازی کنید (برای مثال چک کردن یک http header خاص در زمان دریافت درخواست) و سپس با استفاده از filter chain بدون اطلاع از اینکه قیلتر بعدی چه فیلتری است کنترل برنامه را به اجرای فیلتر بعدی تغییر دهید.

public class CheckHeaderFilter extends GenericFilterBean {
 
    @Override
    public void doFilter(
      ServletRequest request, 
      ServletResponse response,
      FilterChain filterChain) throws IOException, ServletException {
        //your code  
        filterChain.doFilter(request, response);
    }
}

البته در نهایت باید فیلتر خود را در Security Config پروژه رجیستر کنید.

جواب 5 ماه قبل توسط Saeed Zarinfam (717 امتیاز)
انتخاب شده در 5 ماه قبل توسط 1993
+2 رأی
فیلترچین ها همون آدرسهای داخلی اپلیکیشن شما هستند که در اسپرینگ سکیوریتی طبقه بندی امنیتی می شند

به زبان ساده تر فیلترچین ها اساس استفاده از رول ها در اسپرینگ سکیوریتی هستند

نکته اصلی اینجاست که اسپرینگ سکیوریتی هیچ وقت از اینکه این ریکوست از کجا اومده نداره!(از وب‌سرویسه، آجاکس کاله، یا از بروزر اومده یا HttpInvoker هست) لذا با استفاده از تکنیک فیلترچین در حقیقت داره با  HttpServletRequests بحث رولها را مدیریت می کنه
جواب 5 ماه قبل توسط javahosting.ir (40 امتیاز)

سوال های مشابه

0 رأی
0 جواب میانگین بازدید روزانه 0.1835 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.3264 بازدید
+1 رأی
0 جواب میانگین بازدید روزانه 0.54114 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.18188 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.14141 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط crusader (82 امتیاز)
+1 رأی
0 جواب میانگین بازدید روزانه 0.42349 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.17149 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.33207 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.51445 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.18189 بازدید
کانال تلگرام جواب یاب
...