Dart Auth Commons
Libraries used throughout DART for authentication and authorization
In addition to the publicly available third-party libraries it uses, dart-auth has dependencies on a number of other Scala libraries. In order to build DART these dependencies must be accessible via the local filesystem (in the SBT cache) or over the network via Sonatype Nexus where they are published. dart-auth requires the following dependencies to be built/installed:
|Group ID||Artifact ID|
In addition to the above DART libraries, dart-auth depends on the open source library
johnhungerford/scala-rbac, which is maintained in party by the DART team.
This project is built using SBT. For more information on installation and configuration of SBT please see the documentation
dart-auth is a library containing no runnable main classes. The only supported build tasks are compilation, testing, and publication:
sbt clean # clear out all build artifacts sbt compile sbt test # run all test suites sbt publish # publish all modules to maven sbt publishLocal # publish all modules locally
all tasks can be executed relative to a single module by prefixing the task with the
module name as defined in
build.sbt. Note that the
core module is cross-compiled
to scala.js which generates the project ids
sbt coreJVM/compile sbt coreJS/test sbt keycloakCommon/publishLocal
The build is into the following modules:
root | |-- core | |-- controllers | |-- keycloak-common | |-- tenant-index | | | |-- arrango-tenants | | | |-- keycloak-tenants | | |-- user-store | -- keycloak-users
corecontains the user, group, and tenants data models; authorization logic; and tenants and user data service interface definitions.
controllerscontains the abstract scalatra servlet classes used by all DART REST services, which automatically handle authentication and contain utilities for enforcing authorization on certain operations.
keycloak-commoncontains a keycloak admin client
tenant-indexcontains service implementations for reading and writing tenant data in arrango-db (now canonical), and keycloak
user-storecontains service implementations for reading and writing user data. This is currently in keycloak only.