mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-11 17:08:23 +00:00
49 lines
1.7 KiB
Java
49 lines
1.7 KiB
Java
package auth.sso.oidc.custom;
|
|
|
|
import auth.sso.oidc.OidcConfigs;
|
|
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;
|
|
|
|
public class CustomOidcClient extends OidcClient {
|
|
|
|
private final OidcConfigs oidcConfigs;
|
|
|
|
public CustomOidcClient(OidcConfiguration configuration, OidcConfigs oidcConfigs) {
|
|
super(configuration);
|
|
this.oidcConfigs = oidcConfigs;
|
|
}
|
|
|
|
@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) {
|
|
if (forceReinit) {
|
|
setAuthenticator(new CustomOidcAuthenticator(this, oidcConfigs));
|
|
} else {
|
|
setAuthenticatorIfUndefined(new CustomOidcAuthenticator(this, oidcConfigs));
|
|
}
|
|
}
|
|
|
|
setProfileCreatorIfUndefined(
|
|
new CustomOidcProfileCreator(getConfiguration(), this, oidcConfigs));
|
|
setLogoutProcessorIfUndefined(
|
|
new OidcLogoutProcessor(getConfiguration(), findSessionLogoutHandler()));
|
|
setLogoutActionBuilderIfUndefined(new OidcLogoutActionBuilder(getConfiguration()));
|
|
}
|
|
}
|