package org.apereo.cas.authentication.handler;
/**
* Strategy pattern component for transforming principal names in the authentication pipeline.
*
* @author Howard Gilbert
* @since 3.3.6
*/
public interface PrincipalNameTransformer {
/**
* Transform the string typed into the login form into a tentative Principal Name to be
* validated by a specific type of Authentication Handler.
*
* <p>The Principal Name eventually assigned by the PrincipalResolver may
* be unqualified ("AENewman"). However, validation of the Principal name against a
* particular backend source represented by a particular Authentication Handler may
* require transformation to a temporary fully qualified format such as
* AENewman@MAD.DCCOMICS.COM or MAD\AENewman. After validation, this form of the
* Principal name is discarded in favor of the choice made by the Resolver.
*
* @param formUserId The raw userid typed into the login form
* @return the string that the Authentication Handler should lookup in the backend system
*/
String transform(String formUserId);
}