2021-09-28 16:30:17 -07:00
|
|
|
package auth.sso.oidc.custom;
|
|
|
|
|
|
|
|
import org.pac4j.core.util.CommonHelper;
|
|
|
|
import org.pac4j.oidc.client.OidcClient;
|
|
|
|
import org.pac4j.oidc.config.OidcConfiguration;
|
2024-10-28 09:05:16 -05:00
|
|
|
import org.pac4j.oidc.credentials.extractor.OidcCredentialsExtractor;
|
2021-09-28 16:30:17 -07:00
|
|
|
import org.pac4j.oidc.logout.OidcLogoutActionBuilder;
|
2024-10-28 09:05:16 -05:00
|
|
|
import org.pac4j.oidc.logout.processor.OidcLogoutProcessor;
|
2021-09-28 16:30:17 -07:00
|
|
|
import org.pac4j.oidc.profile.creator.OidcProfileCreator;
|
|
|
|
|
2024-10-28 09:05:16 -05:00
|
|
|
public class CustomOidcClient extends OidcClient {
|
2021-09-28 16:30:17 -07:00
|
|
|
|
2024-10-28 09:05:16 -05:00
|
|
|
public CustomOidcClient(OidcConfiguration configuration) {
|
|
|
|
super(configuration);
|
2021-09-28 16:30:17 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2024-10-28 09:05:16 -05:00
|
|
|
protected void internalInit(final boolean forceReinit) {
|
|
|
|
// Validate configuration
|
2021-09-28 16:30:17 -07:00
|
|
|
CommonHelper.assertNotNull("configuration", getConfiguration());
|
2024-10-28 09:05:16 -05:00
|
|
|
|
|
|
|
// 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()));
|
2021-09-28 16:30:17 -07:00
|
|
|
}
|
|
|
|
}
|