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
For MongoDB
– If you want to use PostgreSQL:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
– or MySQL:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</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= bezKoderSecretKey
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.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto= update
# App Properties
bezkoder.app.jwtSecret= bezKoderSecretKey
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 Refresh Token with JWT 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 Pagination & Sorting example
Associations:
Spring Boot One To Many example with Spring JPA, Hibernate
Spring Boot Many To Many example with Spring JPA, Hibernate
JPA One To One example with 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 + 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
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