Spring Boot Security Login example with JWT and H2 example
- Appropriate Flow for User Login and Registration with JWT and HttpOnly Cookie
- Spring Boot Rest Api Architecture with Spring Security
- How to configure Spring Security to work with JWT
- How to define Data Models and association for Authentication and Authorization
- Way to use Spring Data JPA to interact with H2 Database
User Registration, Login and Authorization process.
Spring Boot Server Architecture with Spring Security
You can have an overview of our Spring Boot Server with the diagram below:
For more detail, please visit:
Spring Boot Security Login example with JWT and H2 example
For MySQL/PostgreSQL
For MongoDB
Working with Front-end:
Angular 12 / Angular 13 / Angular 14 / Angular 15 / Angular 16 / Angular 17
React / React Redux
– If you want to use PostgreSQL:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
– or MySQL:
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
Configure Spring Datasource, JPA, App properties
Open src/main/resources/application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=postgres
spring.datasource.password=123
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto=update
# App Properties
bezkoder.app.jwtSecret= ======================BezKoder=Spring===========================
bezkoder.app.jwtExpirationMs= 86400000
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update
# App Properties
bezkoder.app.jwtSecret= ======================BezKoder=Spring===========================
bezkoder.app.jwtExpirationMs= 86400000
Run Spring Boot application
Run following SQL insert statements
INSERT INTO roles(name) VALUES('ROLE_USER');
INSERT INTO roles(name) VALUES('ROLE_MODERATOR');
INSERT INTO roles(name) VALUES('ROLE_ADMIN');
Spring Boot JWT Refresh Token example
Spring Boot File upload example with Multipart File
Exception handling: @RestControllerAdvice example in Spring Boot
Spring Boot Repository Unit Test with @DataJpaTest
Spring Boot Rest Controller Unit Test with @WebMvcTest
Spring Boot Pagination & Sorting example
Validation: Spring Boot Validate Request Body
Documentation: Spring Boot and Swagger 3 example
Caching: Spring Boot Redis Cache example
Associations:
JPA/Hibernate One To Many example in Spring Boot
JPA/Hibernate Many To Many example in Spring Boot
JPA/Hibernate One To One example in Spring Boot
Deployment:
Deploy Spring Boot App on AWS – Elastic Beanstalk
Docker Compose Spring Boot and MySQL example
Spring Boot + Vue.js JWT Authentication
Spring Boot + Angular 8 JWT Authentication
Spring Boot + Angular 10 JWT Authentication
Spring Boot + Angular 11 JWT Authentication
Spring Boot + Angular 12 JWT Authentication
Spring Boot + Angular 13 JWT Authentication
Spring Boot + Angular 14 JWT Authentication
Spring Boot + Angular 15 JWT Authentication
Spring Boot + Angular 16 JWT Authentication
Spring Boot + Angular 17 JWT Authentication
Spring Boot + React JWT Authentication
Vue.js + Spring Boot + H2 Embedded database example
Vue.js + Spring Boot + MySQL example
Vue.js + Spring Boot + PostgreSQL example
Angular 8 + Spring Boot + Embedded database example
Angular 8 + Spring Boot + MySQL example
Angular 8 + Spring Boot + PostgreSQL example
Angular 10 + Spring Boot + MySQL example
Angular 10 + Spring Boot + PostgreSQL example
Angular 11 + Spring Boot + MySQL example
Angular 11 + Spring Boot + PostgreSQL example
Angular 12 + Spring Boot + Embedded database example
Angular 12 + Spring Boot + MySQL example
Angular 12 + Spring Boot + PostgreSQL example
Angular 13 + Spring Boot + H2 Embedded Database example
Angular 13 + Spring Boot + MySQL example
Angular 13 + Spring Boot + PostgreSQL example
Angular 14 + Spring Boot + H2 Embedded Database example
Angular 14 + Spring Boot + MySQL example
Angular 14 + Spring Boot + PostgreSQL example
Angular 15 + Spring Boot + H2 Embedded Database example
Angular 15 + Spring Boot + MySQL example
Angular 15 + Spring Boot + PostgreSQL example
Angular 16 + Spring Boot + H2 Embedded Database example
Angular 16 + Spring Boot + MySQL example
Angular 16 + Spring Boot + PostgreSQL example
Angular 17 + Spring Boot + H2 Embedded Database example
Angular 17 + Spring Boot + MySQL example
Angular 17 + Spring Boot + PostgreSQL example
React + Spring Boot + MySQL example
React + Spring Boot + PostgreSQL example
React + Spring Boot + MongoDB example
Run both Back-end & Front-end in one place:
Integrate Angular with Spring Boot Rest API
Integrate React.js with Spring Boot Rest API
Integrate Vue.js with Spring Boot Rest API