Most of the methods rely on the role name within python keycloak, which for the vast majority is fine, however there are some role names which cannot be used by the API endpoint as they contain characters that cannot be encoded properly. Therefore this change is to allow the use of the role's id to get, update and delete roles by their id instead.'
* refactor: Refactor exchange_token method
Add missing arguments:
- subject_token_type
- subject_issuer
- requested_issuer
Remove client_id argument. The client_id should come from self.
Add None defaults
* 🔥 chore(test_keycloak_openid.py): remove unused client_id parameter
Refactored the exchange_token method test to match the new interface
BREAKING CHANGE: Changes the exchange token API
* refactor: Factor our OpenIdConnectionManager class and deprecate old methods
* refactor: Refactor keycloak uma client to use openid connection manager
* fix: Perform token renewal at 90% of lifetime
* refactor: Add optional openid connection constructor param to keycloak admin
* refactor: Remove auto_refresh_token in favour of automatic refresh on expiry
* refactor: move KeycloakOpenIDConnectionManager to a separate file
* docs: uma additions and fixes
* refactor: rename token_renewal_fraction->token_lifetime_fraction
* refactor: shorten KeycloakOpenIDConnectionManager->KeycloakOpenIDConnection
* docs: incorporate review comments
Remove the necessity for supplying client name for create a new client
request, also don't check existing clients based on client name as those
can be duplicate
BREAKING CHANGE: Renamed parameter client_name to client_id in get_client_id method
Closes#351