Spring Boot JWT Authentication example with Spring Security & Spring Data JPA
User Registration, User Login and Authorization process.
The diagram shows flow of how we implement User Registration, User 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:
Secure Spring Boot App with Spring Security & JWT Authentication
For MongoDB
For instruction: 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
– 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');