package org.apereo.cas.authentication;
import org.apereo.cas.authentication.principal.Service;
import java.io.Serializable;
/**
* The {@link AuthenticationResult} is an abstraction representing final authentication outcome for any number of processed
* authentication transactions.
* <p>
* An authentication result carries the primary composite authentication event, collected
* from all authentication transactions. The principal and attributes associated with this authentication
* are also collected out of all authentication transactions.
*
* @author Misagh Moayyed
* @since 4.2
*/
public interface AuthenticationResult extends Serializable {
/**
* Obtains the finalized primary authentication for this result.
*
* @return the authentication
*/
Authentication getAuthentication();
/**
* Gets the service for which this authentication result is relevant.
* The service MAY be null, as an authentication result in CAS
* can be established without providing a service/destination.
*
* @return the service
*/
Service getService();
/**
* Indicates whether the authentication event
* was established as part of user providing credentials.
*
* @return true if credentials are provided. false is authn was established as part of SSO.
*/
boolean isCredentialProvided();
}