No description
c3b577de11
Moved methods `transformUserInfoToken`, `transformAccessToken`, `transformIDToken` to the `AbstractOIDCProtocolMapper` base class in order to reduce code duplication. Previously every mapper implemented at least one or two of those methods with exactly the same code. Having those methods in the base class ensures that the code is the same for all mappers. Since the mentioned methods are declared on the `OIDCIDTokenMapper`, `OIDCAccessTokenMapper` and `UserInfoTokenMapper` interfaces `AbstractOIDCProtocolMapper` implementations can now choose how they should be handled by the `TokenManager` by implementing the desired set of interfaces `*TokenMapper`-interfaces. I think this provides a good balance between ease of use, reduced code duplication and ensured backwards compatiblity. Existing protocol mapper implementations will still work since they just implement their own logic for `transformUserInfoToken`, `transformAccessToken`, `transformIDToken`. The "claim" information provided by a `ProtocolMapper` to a `*Token` can now be provided by overriding the `AbstractOIDCProtocolMapper.setClaim` method. Adapted all eligible ProtocolMapper implementations within the `org.keycloak.protocol.oidc.mappers` package accordingly. |
||
---|---|---|
adapters | ||
authz | ||
common | ||
core | ||
dependencies | ||
distribution | ||
examples | ||
federation | ||
integration | ||
misc | ||
model | ||
proxy | ||
saml-core | ||
saml-core-api | ||
server-spi | ||
services | ||
testsuite | ||
themes | ||
util | ||
wildfly | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
License.html | ||
pom.xml | ||
README.md |
Keycloak
Open Source Identity and Access Management for modern Applications and Services.
For more information about Keycloak visit Keycloak homepage and Keycloak blog.
Building
Ensure you have JDK 8 (or newer), Maven 3.2.1 (or newer) and Git installed
java -version
mvn -version
git --version
First clone the Keycloak repository:
git clone https://github.com/keycloak/keycloak.git
cd keycloak
To build Keycloak run:
mvn install
This will build all modules and run the testsuite.
To build the distribution run:
mvn install -Pdistribution
Once completed you will find distribution archives in distribution
.
Starting Keycloak
To start Keycloak during development first build as specficied above, then run:
mvn -f testsuite/integration/pom.xml exec:java -Pkeycloak-server
To start Keycloak from the appliance distribution first build the distribution it as specified above, then run:
tar xfz distribution/appliance-dist/target/keycloak-appliance-dist-all-<VERSION>.tar.gz
cd keycloak-appliance-dist-all-<VERSION>/keycloak
bin/standalone.sh
To stop the server press Ctrl + C
.
Help and Documentation
- Documentation - User Guide, Admin REST API and Javadocs
- User Mailing List - Mailing list to ask for help and general questions about Keycloak
- JIRA - Issue tracker for bugs and feature requests
Contributing
- Developer documentation
- Hacking on Keycloak - How to become a Keycloak contributor
- Testsuite - Details about testsuite, but also how to quickly run Keycloak during development and a few test tools (OTP generation, LDAP server, Mail server)
- Database Testing - How to do testing of Keycloak on different databases
- Updating Database - How to change the Keycloak database
- Changing the Default keycloak-subsystem Configuration - How to update the default keycloak-subsystem config
- Developer Mailing List - Mailing list to discuss development of Keycloak