/SPRING-FRAMEWORK

This project demonstrates how to create an authenticated backend using Spring Security, Spring Data JPA for database access, JWT generation for enhanced security, and harnessing capabilities through HTTP POST requests.

Primary LanguageJavaMIT LicenseMIT

Spring, SpringBoot, JPA, Hibernate.

Build a robust and secure backend for your application with Spring Security 6. This repo demonstrates how to create an authenticated backend using Spring Security, Spring Data JPA for database access, JWT generation for enhanced security, and harnessing capabilities through HTTP POST requests.

Topics covered in the Repo

  1. What is Spring framework?
  2. Spring Vs Java EE.
  3. Evolution of Spring and release timeline of Spring
  4. Different projects inside Spring
  5. Spring Core Concepts like Inversion of Control (IoC), Dependency Injection (DI) & Aspect-Oriented Programming (AOP)
  6. Different approaches of Beans creation inside Spring framework
  7. Bean Scopes inside Spring framework
  8. Autowiring of the Spring Beans
  9. Lombok library and Annotations
  10. Introduction to MVC pattern & overview of web apps
  11. Spring MVC internal architecture & how to create web applications using Spring MVC & Thymeleaf
  12. Spring MVC Validations
  13. How to build dynamic web apps using Thymeleaf & Spring
  14. Thymeleaf integration with Spring, Spring MVC, Spring Security
  15. Deep dive on Spring Boot, Auto-configuration
  16. Spring Boot Dev Tools
  17. Spring Boot H2 Database
  18. Securing web applications using Spring Security
  19. Authentication , Authorization, Role based access
  20. Cross-Site Request Forgery (CSRF) & Cross-Origin Resource Sharing (CORS)
  21. Database create, read, update, delete operations using Spring JDBC
  22. Introduction to ORM frameworks & database create, read, update, delete operations using Spring Data JPA/Hibernate
  23. Derived Query methods in JPA
  24. OneToOne, OneToMany, ManyToOne, ManyToMany mappings inside JPA/Hibernate
  25. Sorting, Pagination, JPQL inside Spring Data JPA
  26. Building Rest Services inside Spring
  27. Consuming Rest Services using OpenFeign, Web Client, RestTemplate
  28. Spring Data Rest & HAL Explorer
  29. Logging inside Spring applications
  30. Properties Configuration inside Spring applications
  31. Profiles inside Spring Boot applications
  32. Conditional Bean creation using Profiles.
  33. Monitoring Spring Boot applications using SpringBoot Actuator & Spring Boot Admin
  34. Deploying SpringBoot App into cloud using AWS Elastic Beanstalk

Pre-requisite for the course

  • Good understanding on Core Java
  • Basic understanding on HTML, CSS, Web Apps but not mandatory
  • Interest to learn and explore about Spring framework

Important Links

Login Token Generated @Postman

Features

  • Spring Security 6: Craft a fortified backend by leveraging the latest capabilities of Spring Security 6. Ensure that your application's data remains safeguarded with top-tier security measures..

  • Spring Data JPA: Seamlessly interact with your database through Spring Data JPA. Manage user data, roles, and more with the power of JPA-based repositories.

  • JWT Generation: Elevate security to the next level with JSON Web Token (JWT) generation. Ensure secure communication between your frontend and backend while minimizing potential vulnerabilities.

  • HTTP POST Capabilities: Harness the power of HTTP POST requests to create, update, and manage resources. Empower your frontend to interact seamlessly with the backend..

Register user/admin @Postman

Getting Started

Follow these steps to get started with your secure backend:

  1. Clone the repository:

    git clone https://github.com/Innocentsax/Spring-Security_6.git
    
  2. Configure your database settings in src/main/resources/application.properties..

  3. Build and run the project:

    mvn spring-boot:run
    
  4. Access the API documentation and explore the available endpoints.

Security Configuration

Usage

This backend template is designed to jumpstart your development process. Customize and expand upon it to suit your application's needs. Secure your endpoints, manage user access, and establish a reliable foundation for your project.

Documentation

For detailed documentation on endpoints, authentication, and more, refer to the API Documentation.

Contributing

Contributions are welcome! If you find any issues or have suggestions, feel free to submit a pull request or open an issue..

License

This project is licensed under the MIT License - see the LICENSE file for details.


Author