The project is demostration of how to implement authenticaton with RestController using modular structure with SOLID priciples
- Spring Boot
- Swagger
- Solid Principle
- There are 4 rest endpoints: Authenticate User, Register User, Get All User and Get Current User.
- The Authenticate User will check the user and password and return an authentication token.
- The Register User will register new user.
- The Get All User will return all users. Requires ADMIN privileges to hit this endpoint.
- The Get Current User will return data about current user. Requires user to be authenticated.
Rest Api Doc - Documentation Link
- To Register new user - /api/auth/register
- To SignIn user - /api/auth/login
- To Get All User - /api/users (Requires Admin Privileges)
- To get user profile - /api/users/me (Requires Authorization)
- Spring Web: https://spring.io/
- Spring Security: https://spring.io/
- Swagger SpringFox: http://springfox.github.io/springfox/docs/snapshot/
- Lombok: https://projectlombok.org/
- Mapstruct: https://mapstruct.org/
- Jwt IO(jsonwebtoken:): https://github.com/jwtk/jjwt