+2 امتیاز
قبل در برنامه نویسی توسط (242 امتیاز)
برچسب گذاری دوباره قبل توسط

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

What is the security filter chain?

2 پاسخ

+2 امتیاز
قبل توسط (1.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 پروژه رجیستر کنید.

+2 امتیاز
قبل توسط (40 امتیاز)
فیلترچین ها همون آدرسهای داخلی اپلیکیشن شما هستند که در اسپرینگ سکیوریتی طبقه بندی امنیتی می شند

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

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

سوالات مشابه

0 امتیاز
0 پاسخ 473 بازدید
+1 امتیاز
1 پاسخ 793 بازدید
+1 امتیاز
0 پاسخ 443 بازدید
0 امتیاز
0 پاسخ 407 بازدید
+1 امتیاز
0 پاسخ 842 بازدید
0 امتیاز
0 پاسخ 696 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
1 پاسخ 547 بازدید
...