class CasRestFormClient extends AbstractCasRestClient {

    private String usernameParameter = Pac4jConstants.USERNAME;

    private String passwordParameter = Pac4jConstants.PASSWORD;

    /**
     * <p>Constructor for CasRestFormClient.</p>
     */
    public CasRestFormClient() {}

    /**
     * <p>Constructor for CasRestFormClient.</p>
     *
     * @param configuration a {@link CasConfiguration} object
     * @param usernameParameter a {@link String} object
     * @param passwordParameter a {@link String} object
     */
    public CasRestFormClient(final CasConfiguration configuration, final String usernameParameter, final String passwordParameter) {
        this.configuration = configuration;
        this.usernameParameter = usernameParameter;
        this.passwordParameter = passwordParameter;
    }

    /** {@inheritDoc} */
    @Override
    protected void internalInit(final boolean forceReinit) {<FILL_FUNCTION_BODY>}
}

        assertNotBlank("usernameParameter", this.usernameParameter);
        assertNotBlank("passwordParameter", this.passwordParameter);
        assertNotNull("configuration", this.configuration);

        setCredentialsExtractorIfUndefined(new FormExtractor(this.usernameParameter, this.passwordParameter));
        setAuthenticatorIfUndefined(new CasRestAuthenticator(this.configuration));
    
<methods>public non-sealed void <init>() ,public void destroyTicketGrantingTicket(org.pac4j.cas.profile.CasRestProfile, org.pac4j.core.context.WebContext) ,public org.pac4j.core.credentials.TokenCredentials requestServiceTicket(java.lang.String, org.pac4j.cas.profile.CasRestProfile, org.pac4j.core.context.WebContext) ,public org.pac4j.cas.profile.CasProfile validateServiceTicket(java.lang.String, org.pac4j.core.credentials.TokenCredentials, org.pac4j.core.context.WebContext) <variables>protected org.pac4j.cas.config.CasConfiguration configuration