An open API service indexing awesome lists of open source software.

https://github.com/erebelo/spring-security-jwt

Java REST API project using Spring Boot 3, Spring Security 6 for JWT Authentication and Authorization, and H2 database
https://github.com/erebelo/spring-security-jwt

authentication authorization back-end backend backend-api backend-service h2-database java jwt jwt-authentication spring spring-boot spring-boot-3 spring-security spring-security-6 spring-security-jwt springboot

Last synced: about 1 month ago
JSON representation

Java REST API project using Spring Boot 3, Spring Security 6 for JWT Authentication and Authorization, and H2 database

Awesome Lists containing this project

README

          

# Spring Security JWT

REST API project developed in Java using Spring Boot 3, Spring Security 6 for JWT Authentication and Authorization, and H2 database.

## Features

- Token-based Authentication using JSON Web Token (JWT)
- Role-based authorization
- Encoding password with BCrypt algorithm

## Requirements

- Java 17
- Spring Boot 3.x.x
- Spring Security 6.x.x
- Apache Maven 3.8.6

## Libraries

- [spring-common-parent](https://github.com/erebelo/spring-common-parent): Manages the Spring Boot version and provide common configurations for plugins and formatting.

## Configuring Maven for GitHub Dependencies

To pull the `spring-common-parent` dependency, follow these steps:

1. **Generate a Personal Access Token**:

Go to your GitHub account -> **Settings** -> **Developer settings** -> **Personal access tokens** -> **Tokens (classic)** -> **Generate new token (classic)**:

- Fill out the **Note** field: `Pull packages`.
- Set the scope:
- `read:packages` (to download packages)
- Click **Generate token**.

2. **Set Up Maven Authentication**:

In your local Maven `settings.xml`, define the GitHub repository authentication using the following structure:

```xml


github-spring-common-parent
USERNAME
TOKEN


```

**NOTE**: Replace `USERNAME` with your GitHub username and `TOKEN` with the personal access token you just generated.

## Run App

- Set the following environment variables: `DB_PASSWORD`, `ADMIN_PASSWORD` and `SECRET_KEY` (size >= 256 bits).
- Run the `SpringSecurityJwtApplication` class as Java Application.

## Collection

[Project Collection](https://github.com/erebelo/spring-security-jwt/tree/main/collection)

## AWS Demo

[Spring Security JWT](https://jwt.erebelo.com/spring-security-jwt/swagger-ui/index.html)

## AWS Deployment

Follow the [AWS Docker](https://github.com/erebelo/aws-docker/tree/main) guide to deploy a **Java App** instance and how to set up **Nginx** as a reverse proxy with a valid Wildcard SSL/TLS certificate.