* Consistency for token decoding
* Mark as staticmethod
* Helper function to convert key
* Refactor key handling
* Add tests for validate=False
* Change test name
* Fix failing test
* Remove special case for str
* Some docstring
* docs: missing docstrings
---------
Co-authored-by: Richard Nemeth <ryshoooo@gmail.com>
* feat: add optional nonce parameter to the authorization URL requests
* fix: shorten docstring to be below max line length
---------
Co-authored-by: Greg Griffin <greg@lapetussolutions.com>
* chore: add async client to connection
* chore: add async client to keycloak openid
* chore: add async client to keycloak uma
* chore: add async client and methods to keycloak admin
* chore: add async tests for connection and uma class
* chore: add async tests for keycloak openid class
* chore: add async tests for keycloak admin class
* chore: update poetry lock
* chore: update poetry lock
* fix: poetry files
* fix: lint issues
* fix: conftest fix
* fix: lint test fix
* fix: lint test fix
* fix: lint test fix
* fix: lint test fix
* fix: lint test fix
* fix: added setuptools
* fix: delete request fix and test cases fix
* fix: email test case
* fix: email test case for older versions
* fix: set correct content type on token endpoint
* fix: async on missing calls
* test: updated tests
* chore: deps
* fix: preserve original bearer
* fix: dont set bearer in refresh token directly
* fix: default content type
* fix: content type for initial access token
* fix: content type for async initial access token
* chore: add divergence test
* chore: add divergence test for uma and conneciton class
* chore: add docs for async module
* fix: sphinx error fixes
* test: verify signature
* test: final divergence tests
---------
Co-authored-by: Richard Nemeth <ryshoooo@gmail.com>
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