package org.pac4j.http.client.direct; import org.pac4j.core.client.DirectClient; import org.pac4j.core.context.Pac4jConstants; import org.pac4j.core.context.WebContext; import org.pac4j.core.credentials.authenticator.Authenticator; import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.profile.creator.ProfileCreator; import org.pac4j.core.util.CommonHelper; import org.pac4j.core.credentials.UsernamePasswordCredentials; import org.pac4j.core.credentials.extractor.FormExtractor; /** * This class is the client to authenticate users, based on form HTTP parameters. * * @author Jerome Leleu * @since 1.8.6 */ public class DirectFormClient extends DirectClient<UsernamePasswordCredentials, CommonProfile> { private String usernameParameter = Pac4jConstants.USERNAME; private String passwordParameter = Pac4jConstants.PASSWORD; public DirectFormClient() {} public DirectFormClient(final Authenticator usernamePasswordAuthenticator) { defaultAuthenticator(usernamePasswordAuthenticator); } public DirectFormClient(final String usernameParameter, final String passwordParameter, final Authenticator usernamePasswordAuthenticator) { this.usernameParameter = usernameParameter; this.passwordParameter = passwordParameter; defaultAuthenticator(usernamePasswordAuthenticator); } public DirectFormClient(final Authenticator usernamePasswordAuthenticator, final ProfileCreator profileCreator) { defaultAuthenticator(usernamePasswordAuthenticator); defaultProfileCreator(profileCreator); } @Override protected void clientInit(final WebContext context) { CommonHelper.assertNotBlank("usernameParameter", usernameParameter); CommonHelper.assertNotBlank("passwordParameter", passwordParameter); defaultCredentialsExtractor(new FormExtractor(usernameParameter, passwordParameter, getName())); } public String getUsernameParameter() { return this.usernameParameter; } public void setUsernameParameter(final String usernameParameter) { this.usernameParameter = usernameParameter; } public String getPasswordParameter() { return this.passwordParameter; } public void setPasswordParameter(final String passwordParameter) { this.passwordParameter = passwordParameter; } @Override public String toString() { return CommonHelper.toString(this.getClass(), "name", getName(), "usernameParameter", this.usernameParameter, "passwordParameter", this.passwordParameter, "extractor", getCredentialsExtractor(), "authenticator", getAuthenticator(), "profileCreator", getProfileCreator()); } }