All Projects → rolandkrueger → user-microservice

rolandkrueger / user-microservice

Licence: Apache-2.0 license
Microservice for user account management - written with Spring Boot

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to user-microservice

Ts3admin.class
The ts3admin.class is a powerful api for communication with Teamspeak 3 Servers from your website! Your creativity knows no bounds!
Stars: ✭ 103 (+101.96%)
Mutual labels:  user
Plus
💝The Plus (ThinkSNS+) is a powerful, easy-to-develop social system built with Laravel.
Stars: ✭ 2,148 (+4111.76%)
Mutual labels:  user
MeteorCandy-meteor-admin-dashboard-devtool
The Fast, Secure and Scalable Admin Panel / Dashboard for Meteor.js
Stars: ✭ 50 (-1.96%)
Mutual labels:  user
Urpm
urpm 是一套基于Laravel封装的后台用户管理权限系统,能够让开发者不用再关心权限问题,实现后台功能的快速开发。
Stars: ✭ 118 (+131.37%)
Mutual labels:  user
Priest
dubbo mybatis springboot base soa rest api framework with customer code generator
Stars: ✭ 160 (+213.73%)
Mutual labels:  user
ts3admin.class
The ts3admin.class is a powerful api for communication with Teamspeak 3 Servers from your website! Your creativity knows no bounds!
Stars: ✭ 107 (+109.8%)
Mutual labels:  user
Django Currentuser
Conveniently store reference to request user on thread/db level.
Stars: ✭ 83 (+62.75%)
Mutual labels:  user
terraform-s3-user
A Terraform module that creates a tagged S3 bucket and an IAM user/key with access to the bucket
Stars: ✭ 20 (-60.78%)
Mutual labels:  user
Aspnetcore.identity.mongo
This is a MongoDB provider for the ASP.NET Core 2 Identity framework
Stars: ✭ 179 (+250.98%)
Mutual labels:  user
CarRental
Car rental management website based on php as a backend for univ web development project
Stars: ✭ 76 (+49.02%)
Mutual labels:  user
Sigir2020 peterrec
Parameter-Efficient Transfer from Sequential Behaviors for User Modeling and Recommendation
Stars: ✭ 121 (+137.25%)
Mutual labels:  user
Bilibili User Information Spider
B站3亿用户信息爬虫(mid号,昵称,性别,关注,粉丝,等级)
Stars: ✭ 136 (+166.67%)
Mutual labels:  user
SuperGrate
💾 Get moving with Super Grate; a free & open source Windows Profile Migration & Backup Utility. Super Grate is a GUI (Graphical User Interface) that assists Microsoft's USMT (User State Migration Utility) in performing remote migrations over a network connection.
Stars: ✭ 91 (+78.43%)
Mutual labels:  user
User Management Php Mysql
PHP User Management System is a powerful PHP script that offers a secure user management system. The application is a great way to build your website, allowing your users to register an account and build restricted access to certain users. We offer great support and it’s very easy to install. It’s powered by MYSQL and PHP.
Stars: ✭ 111 (+117.65%)
Mutual labels:  user
identifo
Universal authentication framework for web, created with go
Stars: ✭ 58 (+13.73%)
Mutual labels:  user
Vue Preferences
The coolest and easiest way to manage your user's preferences on the client side with your preferred storage. Check out sample app here:
Stars: ✭ 96 (+88.24%)
Mutual labels:  user
Fluent-Design-For-Web
Windows 10 Inspired UI For Web
Stars: ✭ 28 (-45.1%)
Mutual labels:  user
metasfresh-documentation
Docs and Manuals for Devs, Users, Admins
Stars: ✭ 22 (-56.86%)
Mutual labels:  user
build-user-vars-plugin
Set of environment variables that describe the user who started the build
Stars: ✭ 40 (-21.57%)
Mutual labels:  user
stweet
Advanced python library to scrap Twitter (tweets, users) from unofficial API
Stars: ✭ 287 (+462.75%)
Mutual labels:  user

user-microservice

Micro-service for user account management - written with Spring Boot

This project provides a micro-service for user data management with a public RESTful interface. The RESTful API uses Spring HATEOAS for linking individual resources. By that, it is only necessary to know the service's base URL to work with it. Starting with the root document you can follow links to access the service's individual resources.

The service can be used as a remote Spring Security user details service. It is completely stateless and can thus be used for scaling.

The service offers interfaces to register new users, confirm user registrations, and to sign in and sign off users.

Public API

This project is a multi-module Maven project divided into two sub-modules. The service module contains the user service itself implemented as a Spring Boot application.

The second module public-api provides a Java API that can be used to access the RESTful service from any Java application. This module offers an easy to use fluent API that mirrors the structure of the linked resources.

Following are a few examples that demonstrate the service's public API.

Register a new user

UserServiceAPI.init("http://www.example.com/user-service")
    .userRegistrations()
    .create("john.doe", "passw0rd", "[email protected]");

Confirm a user registration

String confirmationToken = "a3be0-23...";
UserServiceAPI.init("http://www.example.com/user-service")
   .userRegistrations()
   .findByToken(confirmationToken)
   .confirmRegistration();

Find a user by user name

Optional<UserApiData> alice =
    UserServiceAPI.init("http://www.example.com/user-service")
    .users()
    .search()
    .findUserForLogin("alice").getData().stream().findFirst();

Sign in a user

UserApiData alice = UserServiceAPI.init("http://www.example.com/user-service")
    .users()
    .search()
    .findUserForLogin("alice").getData().stream().findFirst().get();
alice.getResource().loggedIn();

Update a user

UserApiData alice = UserServiceAPI.init("http://www.example.com/user-service")
    .users()
    .search()
    .findUserForLogin("alice").getData().stream().findFirst().get();
alice.setEmail("[email protected]");
alice.getAuthorities().add(new AuthorityApiData("ADMIN_ROLE", ""));

alice.getResource().getUpdateResource().update();

Read hashed password for a user

String alicePasswordHash = service()
    .users()
    .search().findByUsername("alice")
    .getData().stream().findFirst().get()
    .getResource()
    .useProjection(UserProjections.FULL_DATA)
    .read()
    .getPassword();

Open issues

  • Support for Remember-Me
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].