/
KeycloakOidcClient.java
40 lines (34 loc) · 1.43 KB
/
KeycloakOidcClient.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package org.pac4j.oidc.client;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oidc.config.OidcConfiguration;
import org.pac4j.oidc.profile.OidcProfileDefinition;
import org.pac4j.oidc.profile.creator.OidcProfileCreator;
import org.pac4j.oidc.profile.keycloak.KeycloakOidcProfile;
/**
* <p>This class is the OpenID Connect client to authenticate users in Keycloak.</p>
* <p>A KeycloakOidcConfiguration is needed to create a client with to additional properties: </p>
* <ul>
* <li>baseUri : Base auth server url, e.g., https://keycloak.example.com/auth </li>
* <li>realm : keycloak realm</li>
* </ul>
* <p> As seen in test case org.pac4j.oidc.run.RunKeycloakOidcClient</p>
*
* @author Julio Arrebola
* @since 2.0.0
*/
public class KeycloakOidcClient extends OidcClient<KeycloakOidcProfile> {
public KeycloakOidcClient() {
}
public KeycloakOidcClient(final OidcConfiguration configuration) {
super(configuration);
}
@Override
protected void clientInit(final WebContext context) {
CommonHelper.assertNotNull("configuration", getConfiguration());
final OidcProfileCreator<KeycloakOidcProfile> profileCreator = new OidcProfileCreator<>(getConfiguration());
profileCreator.setProfileDefinition(new OidcProfileDefinition<>(x -> new KeycloakOidcProfile()));
defaultProfileCreator(profileCreator);
super.clientInit(context);
}
}