Skip to content

celalaygar/Spring-Boot-WebFlux-Security-MongoDB-RateLimit-Configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Spring Boot 3 Backend Project

This is a modern backend project built using Spring Boot 3 and Gradle. It features a robust architecture designed for scalability, security, and reactive data handling. The project incorporates role-based access control and integrates both traditional Spring MVC and reactive Spring WebFlux modules.

🚀 Features

  • ✅ Role-Based Authentication & Authorization with Spring Security
  • ✅ REST API with Spring MVC & Reactive API with Spring WebFlux
  • ✅ MongoDB for high-performance NoSQL data storage
  • ✅ JPA & Hibernate support for potential relational data management
  • ✅ JWT-based security layer
  • ✅ Custom Rate Limiting configuration
  • ✅ Clean Gradle-based build system

🛠️ Tech Stack

  • Java 17+
  • Spring Boot 3.x
  • Spring Security
  • Spring WebFlux
  • Spring MVC
  • MongoDB
  • Spring Data JPA & Hibernate
  • JWT Authentication
  • Rate Limiting Configuration
  • Gradle

📁 Project Structure

├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │   │   └── tracker
│   │   │   │   │   └── job_ts
│   │   │   │   │   │   ├── auth
│   │   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── controller
│   │   │   │   │   │   │   ├── service
│   │   │   │   │   │   │   ├── repository
│   │   │   │   │   │   │   ├── entity
│   │   │   │   │   │   │   ├── dto
│   │   │   │   │   │   │   ├── exception
│   │   │   │   │   │   │   └── security
│   │   │   │   │   │   └── siber
│   │   │   │   │   │   │   ├── config
│   │   │   │   │   │   │   ├── repository
│   │   │   │   │   │   │   ├── entity
│   │   │   │   │   │   │   └── dto
│   └── resources
│   │   ├── application.yml
│   │   └── static/
├── build.gradle
└── README.md

🔐 Security

  • Role-based access control
  • JWT Token generation and validation
  • Secured endpoints with fine-grained access control
  • Authentication/Authorization filters

⚡ Reactive Programming

Reactive modules leverage Spring WebFlux for non-blocking, event-driven data processing. Designed for high-performance environments and efficient resource utilization.

🧪 Testing (Optional)

If you're adding tests, this can be extended with:

  • JUnit 5
  • Mockito
  • WebTestClient for reactive endpoint testing

🏁 Getting Started

  1. Clone the repository:

    git clone https://github.com/your-username/your-repo-name.git
    cd your-repo-name
  2. Configure MongoDB in application.yml:

    spring:
      data:
        mongodb:
          uri: mongodb://localhost:27017/your-db
  3. Run the application:

    ./gradlew bootRun

📬 API Documentation

You can integrate Swagger/OpenAPI for interactive API documentation.

🧩 Future Improvements

  • Add unit and integration tests
  • Dockerize the application
  • Add Swagger UI for API testing
  • Enhance rate-limiting with Redis or Bucket4j
  • Implement refresh tokens

📄 License

This project is open source and available under the MIT License.

Releases

No releases published

Packages

 
 
 

Contributors

Languages