onur-tlntmr / auth-server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring-boot Auth Server

This project is a simple auth server.
It uses JWT as security mechanism.

Used Technologies

  • Spring Boot
  • Spring Security
  • Spring Jpa
  • H2 Database

Steps to Setup

1. Clone the application

git clone https://github.com/onurcantimur/auth-server

4. Run the app using maven

mvn spring-boot:run

The app will start running at http://localhost

End Points

Auth

Method Url Decription Sample Valid Request Body
POST /api/v1/auth/signup Sign up JSON
POST /api/v1/auth/signin Log in JSON
POST /api/v1/auth/signout Sign out JSON
POST /api/v1/auth/refresh Refresh token JSON

Users

Method Url Description Sample Valid Request Body
GET /api/v1/users Get all users (Only for admins)
GET /api/v1/users/{username} Get user information by username
POST /api/v1/users Add user JSON
PUT /api/v1/users/{username} Update user (For logged in user or admin) JSON
DELETE /api/v1/users/{username} Delete user (For logged in user or admin)

Roles

Method Url Description Sample Valid Request Body
GET /api/v1/roles Get all roles (Only for admins)
POST /api/v1/roles Add role (Only for admins) JSON
POST /api/v1/roles/addtouser Add role (Only for admins) JSON

Test them using postman or any other rest client.

Sample Valid JSON Request Bodies

{
  "fullName": "John Doe",
  "username": "john.doe",
  "email": "john.doe@testuser.com",
  "password": "john.doe@1234"
}
{
  "username": "john.doe",
  "password": "john.doe@1234"
}
{
  "token": "8f96as..."
}
{
  "token": "761b7d..."
}
{
  "userName": "john.doe",
  "fullName": "John Doe",
  "email": "john.doe@testuser.com",
  "password": "john.doe@1234"
}
{
  "id": 1,
  "userName": "joh.doe",
  "fullName": "John Doe",
  "email": "john.doe@testuser.com",
  "password": "john.doe@1234"
}
{
  "name": "ROLE_NEW_TEST"
}
{
  "userName": "john.doe",
  "roleName": "ROLE_ADMIN"
}

Default Records

Roles

Id Role Name
1 ROLE_SUPER_ADMIN
2 ROLE_ADMIN
3 ROLE_USER

Users

Username Full Name Email Roles
root Super Admin superadmin@testuser.com ROLE_SUPER_ADMIN, ROLE_ADMIN, ROLE_USER
admin Admin admin@testuser.com ROLE_ADMIN, ROLE_USER
user User user@testuser.com ROLE_USER
testuser Test User testuser@testuser.com ROLE_USER

About


Languages

Language:Java 100.0%