package org.pac4j.oidc.client;
import org.pac4j.core.context.WebContext;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oidc.config.KeycloakOidcConfiguration;
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 KeycloakOidcConfiguration 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);
}
}