package org.pac4j.cas.client.rest; import org.pac4j.cas.config.CasConfiguration; import org.pac4j.cas.credentials.authenticator.CasRestAuthenticator; import org.pac4j.core.context.HttpConstants; import org.pac4j.core.context.WebContext; import org.pac4j.core.credentials.extractor.BasicAuthExtractor; import org.pac4j.core.util.CommonHelper; /** * Direct client which receives credentials as a basic auth and validates them via the CAS REST API. * * @author Misagh Moayyed * @since 1.8.0 */ public class CasRestBasicAuthClient extends AbstractCasRestClient { private String headerName = HttpConstants.AUTHORIZATION_HEADER; private String prefixHeader = HttpConstants.BASIC_HEADER_PREFIX; public CasRestBasicAuthClient() {} public CasRestBasicAuthClient(final CasConfiguration configuration, final String headerName, final String prefixHeader) { this.configuration = configuration; this.headerName = headerName; this.prefixHeader = prefixHeader; } @Override protected void clientInit(final WebContext context) { CommonHelper.assertNotBlank("headerName", this.headerName); CommonHelper.assertNotNull("prefixHeader", this.prefixHeader); CommonHelper.assertNotNull("configuration", this.configuration); configuration.init(context); defaultCredentialsExtractor(new BasicAuthExtractor(this.headerName, this.prefixHeader, getName())); defaultAuthenticator(new CasRestAuthenticator(this.configuration)); } public String getHeaderName() { return headerName; } public void setHeaderName(final String headerName) { this.headerName = headerName; } public String getPrefixHeader() { return prefixHeader; } public void setPrefixHeader(final String prefixHeader) { this.prefixHeader = prefixHeader; } @Override public String toString() { return CommonHelper.toString(this.getClass(), "name", getName(), "headerName", this.headerName, "prefixHeader", this.prefixHeader, "configuration", configuration, "extractor", getCredentialsExtractor(), "authenticator", getAuthenticator(), "profileCreator", getProfileCreator()); } }