The project focuses on writing Dart bindings or re-implementing the Keycloak JavaScript Adapter (https://www.keycloak.org/docs/latest/securing_apps/index.html#_javascript_adapter) in the Dart programming language. In addition to the plain bindings a package for using this adapter in an Angular Dart application has to be developed. The Angular Dart package has to have the following abilities:
- Reading keycloak JSON configuration files
- Securing routes with roles provided by the OAuth2/OIDC mechanism of Keycloak (Denying access for not allowed roles)
- Securing Angular Dart Components by the OAuth2/OIDC mechanism of Keycloak (required roles for displaying/rendering, required roles for read only access, required roles for read/write access to the component
- Some kind of service mechanism to obtain refresh tokens
- Some kind of service mechanism to obtain user information (Name, roles, scopes, etc.) from the token
- Some kind of service mechanism to have access to an API equivalent to the JavaScript adapter's API (in a more dartish style)
- automated tests
- tiny demo Angular Dart single page app featuring the newly developed bindings