این پروژه نمونهای از یک سیستم احراز هویت (Authentication) و مجوزدهی (Authorization) است که با استفاده از Spring Boot و JWT (JSON Web Token) پیادهسازی شده است. هدف، فراهم کردن یک ساختار پایه، تمیز و قابل گسترش برای مدیریت کاربران و نقشها در یک برنامهی امن و مقیاسپذیر است.
- ✅ پیادهسازی احراز هویت بر پایه توکن JWT به منظور حذف نیاز به session و افزایش امنیت.
- ✅ تعریف و مدیریت نقشهای مختلف کاربری شامل:
ROLE_SUDO
(سطح بالاترین دسترسی)ROLE_ADMIN
(مدیر سیستم)ROLE_USER
(کاربر عادی)
- ✅ فراهم کردن امکانات ثبتنام کاربر جدید با نقش پیشفرض
ROLE_USER
. - ✅ پیادهسازی ورود (Login) و تولید توکن JWT برای استفاده در درخواستهای بعدی.
- ✅ ساخت فیلتر امنیتی (JWT Filter) برای اعتبارسنجی توکنها در هر درخواست HTTP.
- ✅ پیکربندی امنیت برنامه با استفاده از Spring Security جهت محدود کردن دسترسیها بر اساس نقش.
- ✅ قابلیت اتصال به دیتابیسهای مختلف مانند MySQL و استفاده از پایگاه داده درونحافظهای H2 برای توسعه و تست سریع.
- ✅ ساختاردهی کد به صورت ماژولار و تمیز، با تفکیک مسئولیتها در پوشههای مختلف.
- آماده به توسعه برای پروژههای بزرگتر و پیچیدهتر
- کدنویسی مدرن و مطابق با استانداردهای Spring Boot و Spring Security
- استفاده از Gradle برای مدیریت وابستگیها و ساخت پروژه
- استفاده از Lombok برای کاهش کدهای تکراری در entity ها و کلاسها
- نصب بودن Java 17 یا بالاتر
- نصب بودن Gradle (در صورت استفاده از Gradle Wrapper نیازی به نصب جدا نیست)
- اتصال به دیتابیس (در صورت استفاده از MySQL یا سایر پایگاههای داده)
-
کلون کردن پروژه از GitHub:
git clone https://github.com/username/project-name.git cd project-name
-
ساخت و نصب وابستگیها (با Gradle Wrapper): روی سیستمهای Unix/Linux/macOS:
./gradlew clean build
روی ویندوز:
gradlew.bat clean build
-
اجرای پروژه: روی Unix/Linux/macOS:
./gradlew bootRun
روی ویندوز:
gradlew.bat bootRun
-
اجرای فایل JAR (در صورت build کامل): پس از build، در مسیر زیر فایل jar ساخته میشود:
build/libs/your-project-name.jar
اجرای آن:
java -jar build/libs/your-project-name.jar
http://localhost:8080
در صورت نیاز به تغییر پورت، اطلاعات دیتابیس و سایر موارد، به فایلهای زیر مراجعه کنید:
src/main/resources/application.properties
- یا:
src/main/resources/application.yml
این پروژه مناسب کسانی است که میخواهند یک پایه قوی و قابل فهم برای پیادهسازی سیستمهای احراز هویت و مجوزدهی در برنامههای جاوایی داشته باشند و به صورت مرحلهبهمرحله قابلیت گسترش و شخصیسازی را داراست.