Skip to content

Authentication system for Boost Plan. Reusable as an authentication service for web systems.

License

Notifications You must be signed in to change notification settings

yepengding/BoostAuth

Repository files navigation

BoostAuth

Authentication system for Boost Plan. The Boost Plan is a scaffold for building usable web applications in no time.

BoostAuth provides a unified authentication and authorization service for all other systems provided in the Boost Plan. It supports multiple authentication methods with a built-in administration system.

Features

  • Token-based authentication and authorization
  • Basic access authentication (RFC 7617)
  • Fully-fledged access control
  • Management system with frontend
  • Delegation support
  • Email service
  • Admin management
  • Group management
  • Role-based access control
  • Docker-based deployment
  • Clients in multiple languages (e.g., Python, JavaScript, PHP)
  • Integration with third-party services (e.g., Next Cloud)

Setup

Environment

  • Java 11
  • Maven 3.6+

Configuration

src/main/resources/application[-dev/-local/-prod].yml

Start with Docker

docker-compose up

Start with Maven

mvn clean package -D maven.test.skip=true -P [local/dev/prod]

Common Issues

  • Cannot connect to DB: wait until DB is fully initialized and restart web service

API Document

domain:9000/swagger-ui.html

Registration Workflow

Frontend

  1. User: access /view/preregister to preregister
  2. Admin: access /admin/view/manage/preregister to approve the preregistration
  3. Optionally, User: access an endpoint to officially register with a unique code issued by Admin

API

  1. User: call /token/auth/preregister to preregister
  2. Admin: call /admin/identity/approve/{id} to approve the preregistration
  3. Optionally, User: access an endpoint to officially register with a unique code issued by Admin

Basic Access Authentication

  • Authentication endpoint: GET /basic/login
  • Header: Authorization: Basic <username>:<source>:<password>

Token-Based authentication

  1. /token/auth/preregister Generate Identity with UUID and Token
  2. /token/auth/register Make Identity valid
  3. /token/auth/login Sign in
  4. /token/verify Verify a token
  5. /token/auth/logout Sign out
  6. /token/auth/reset/password Reset password

Frontend

User

  • Preregistration: /view/preregister Preregistration

Admin

  • Manage preregistration: /admin/view/manage/preregister Preregistration Admin

  • Manage group: /admin/view/manage/group Group Admin


References

About

Authentication system for Boost Plan. Reusable as an authentication service for web systems.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published