datahub/datahub-frontend/app/auth/sso/oidc/custom/CustomOidcClient.java

41 lines
1.5 KiB
Java

package auth.sso.oidc.custom;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oidc.client.OidcClient;
import org.pac4j.oidc.config.OidcConfiguration;
import org.pac4j.oidc.credentials.extractor.OidcCredentialsExtractor;
import org.pac4j.oidc.logout.OidcLogoutActionBuilder;
import org.pac4j.oidc.logout.processor.OidcLogoutProcessor;
import org.pac4j.oidc.profile.creator.OidcProfileCreator;
public class CustomOidcClient extends OidcClient {
public CustomOidcClient(OidcConfiguration configuration) {
super(configuration);
}
@Override
protected void internalInit(final boolean forceReinit) {
// Validate configuration
CommonHelper.assertNotNull("configuration", getConfiguration());
// Initialize configuration
getConfiguration().init(forceReinit);
// Initialize client components
setRedirectionActionBuilderIfUndefined(
new CustomOidcRedirectionActionBuilder(getConfiguration(), this));
setCredentialsExtractorIfUndefined(new OidcCredentialsExtractor(getConfiguration(), this));
// Initialize default authenticator if not set
if (getAuthenticator() == null || forceReinit) {
setAuthenticatorIfUndefined(new CustomOidcAuthenticator(this));
}
setProfileCreatorIfUndefined(new OidcProfileCreator(getConfiguration(), this));
setLogoutProcessorIfUndefined(
new OidcLogoutProcessor(getConfiguration(), findSessionLogoutHandler()));
setLogoutActionBuilderIfUndefined(new OidcLogoutActionBuilder(getConfiguration()));
}
}