Auth Guard is a comprehensive user authentication and authorization system.
- Introduction
- Features
- Technologies
- Getting Started
- Configuration
- Usage
- API Documentation
- Contributing
- License
Auth Guard is a comprehensive user authentication and authorization system designed to secure your applications and APIs. It provides features such as user registration, login, permission-based access control (PBAC), JWT token-based authentication, and more.
- User registration and login
- Permission-based access control (PBAC)
- JWT token-based authentication
- Secure password hashing
- RESTful API endpoints for user management
- Swagger UI integration for API documentation
- Java
- Spring Boot
- Spring Security
- JWT (JSON Web Tokens)
- PostgreSQL (for database)
- Docker (optional, for containerization)
- Swagger (for API documentation)
To get started with Auth Guard, follow these steps:
- Clone the repository:
git clone https://github.com/imhosseinzadeh/auth-guard.git
- Navigate to the project directory:
cd auth-guard
- Install dependencies:
./gradlew build
- Configure the application (see Configuration section below)
- Run the application:
./gradlew bootRun
Before running the application, make sure to configure the following:
- Database connection details (in application.properties)
- Token secret and expiration times (in application.properties)
- Logging configuration (if necessary)
Once the application is up and running, you can:
- Register new users via the registration endpoint
- Log in with registered user credentials to obtain JWT tokens
- Use the JWT tokens for accessing protected API endpoints
- Define policies for controlling access to resources based on user attributes and context
The API documentation is available using Swagger UI. After running the application, navigate to http://localhost:8080/auth-guard/api-docs
to explore the API endpoints and interact with them.
Contributions are welcome! If you'd like to contribute to Auth Guard, please follow these steps:
- Fork the repository
- Create your feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Submit a pull request
This project is licensed under the [GPLv3] License - see the LICENSE file for details.