به موازات توسعه کمپانی های تولید نرم افزار، تواناییی های آنها در ارائه راه حل های نرم افزاری پیچیده، با زمان و هزینه مناسب باید افزایش یابد. یک استراتژی برای رسیدن به این هدف تعیین فرصت های استفاده مجدد از نرم افزار است. بخش مهمی از توسعه نرم افزارهای تحت شبکه، طراحی و پیاده سازی جنبه های امنیتی سیستم است. مکانیزم امنیتی تعریف شده در J2EE برای User Authentication and Authorization، قابلیت استفاده مجدد از جنبه های امنیتی را افزایش می دهد.
Realm در تعاریف J2EE به منطق احراز هویت کاربران اطلاق می شود و روش های مختلفی چون Database Security و LDAP را می توان در آن به کار گرفت.
به عنوان نمونه پیاده سازی به روش Database Security تحت وب سرور Tomcat شامل مراحل زیر است:
- ایجاد پایگاه داده امنیتی جهت ذخیره اطلاعات دامنه های داده موجود(Data Domains) ، اطلاعات authentication و authorization کاربران سیستم، نقش های(Roles) تعریف شده و دامنه های داده ای که نقش های هر کاربر در آن معتبر است.
- تعیین یکی از مکانیزم های احراز هویت برای application (HTTP Basic Authentication، Form-Based Authentication، Client-Certificate Authentication، Mutual Authentication، Digest Authentication،…) در web.xml
- تعریف محدودیت های امنیتی (Security Constraints) برای بخش های دلخواه application توسط تعیین نقش هایی که درخواست آنها برای دسترسی مجاز است.
- پیاده سازی دلخواه کلاس Realm. (سرور username و password کاربر را جهت احراز هویت بهRealm ارسال کرده و Realm شی موسوم به Principal که حاوی اطلاعات authentication و authorization کاربر-بر طبق Database Security- می باشد را برمی گرداند.
به این ترتیب انعطاف پذیری قابل ملاحظه ای توسط استفاده از polymorphism و Declarative Security (در مقابل hard coded security) به دست می آید.
* در Reusable Security for Segmented Data Domains ادامه مطلب را کامل بخوانید.
