No description
Find a file
Thomas Darimont c3b577de11 KEYCLOAK-3499 Revise OIDCProtocolMapper support
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.
2016-10-18 13:09:30 +02:00
adapters Merge pull request #3305 from sebastienblanc/KEYCLOAK-3683 2016-10-17 19:39:02 +02:00
authz
common KEYCLOAK-905 2016-10-13 11:19:52 +02:00
core KEYCLOAK-3719 Add 'options' to ProviderConfigProperty and use it for 'List' type instead of defaultValue 2016-10-17 21:34:21 +02:00
dependencies Moved version property for jboss-integration-platform to Keycloak parent 2016-10-17 19:55:43 +02:00
distribution Merge branch 'KEYCLOAK-3628' of https://github.com/pedroigor/keycloak 2016-10-17 19:47:05 +02:00
examples Merge pull request #3256 from jsight/ng2_httpmodule_extension 2016-10-17 13:27:42 -04:00
federation KEYCLOAK-3719 Add 'options' to ProviderConfigProperty and use it for 'List' type instead of defaultValue 2016-10-17 21:34:21 +02:00
integration KEYCLOAK-3666 Dynamic client registration policies 2016-10-14 20:20:40 +02:00
misc KEYCLOAK-3697: Evaluate preconditions when generating SQL script 2016-10-13 13:00:33 +02:00
model Merge pull request #3344 from hmlnarik/KEYCLOAK-3732 2016-10-18 10:29:01 +02:00
proxy
saml-core
saml-core-api
server-spi KEYCLOAK-3719 Add 'options' to ProviderConfigProperty and use it for 'List' type instead of defaultValue 2016-10-17 21:34:21 +02:00
services KEYCLOAK-3499 Revise OIDCProtocolMapper support 2016-10-18 13:09:30 +02:00
testsuite Merge pull request #3336 from mposolda/master 2016-10-18 08:33:26 +02:00
themes Merge pull request #3341 from stianst/KEYCLOAK-3727 2016-10-18 09:49:55 +02:00
util
wildfly remove UserCredValueModel and hold hash providers 2016-10-04 12:34:15 -04:00
.gitattributes
.gitignore Ignore dependency-reduced-pom.xml created by Maven Shade plugin 2016-09-29 05:27:43 -03:00
.travis.yml
License.html
pom.xml Moved version property for jboss-integration-platform to Keycloak parent 2016-10-17 19:55:43 +02:00
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

License