Identity Manager implements a User/Group/Role management service, that can be used in several ways :
Indentity Manager is a SOA service that needs its own database. Therefore, it has several JPA entities that are its model layer.
Users, Groups and Roles can have several permissions, which are just arbitrary strings. User passwords are encrypted with Jasypt. You can configure the desired algorithm used for password hash (multiple MD5, SHA-1...).
Identity Manager is a full autonomous RESTHub application, with its 3 layers :
CRUD functionalities are provided to allow user/group/roles management, and permissions attributions. The REST Controller layer is itself protected.
Identity Manager is a maven multi module project, containing:
Identity manager test users are :
Identity Manager can be turned in an OAuth2 provider, thanks to the resthub-oauth2-spring-security module. It means that, in a SOA application, Identity Manager centralizes identities and is requested by other services when HTTP request authentication is needed.
As said before, the REST api are protected. That means that you’ll need OAuth2 tokens to access it, token that could be provided by the application itself.
Thus, Identity Manager acts as an OAuth2 provider AND an OAuth2 secured resources.