A lightweight Spring Boot application demonstrating JWT-based authentication for REST APIs.
- User registration & login
- JWT token generation & validation
- Secured REST endpoints
- PostgreSQL integration
- Role-based access control (optional)
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name- Run PostgreSQL locally or via Docker:
docker run --name local-postgres \
-e POSTGRES_USER=myuser \
-e POSTGRES_PASSWORD=mypassword \
-e POSTGRES_DB=jwt-security \
-p 5432:5432 \
-d postgres:16- Add credentials to environment variables instead of committing
application.yml:
export DB_USER=myuser
export DB_PASS=mypassword
export DB_NAME=jwt-security
export DB_HOST=localhostMaven
mvn clean install
mvn spring-boot:runGradle
./gradlew build
./gradlew bootRun- The app runs on http://localhost:8080 by default.
Register a new user
POST /auth/register
Content-Type: application/json
{
"username": "testuser",
"password": "password123"
}Login to get JWT
POST /auth/login
Content-Type: application/json
{
"username": "testuser",
"password": "password123"
}Access secured endpoint
GET /api/secure
Authorization: Bearer <your-jwt-token>- Do not commit
application.ymlwith credentials — add it to.gitignore. - Use environment variables or external config for secrets.
- Consider a secrets manager (e.g., Vault) in production.
MIT License — see LICENSE for details.