package org.apereo.cas.authentication.principal; import com.fasterxml.jackson.annotation.JsonTypeInfo; import java.io.Serializable; /** * Generates a unique consistent Id based on the principal. * * @author Scott Battaglia * @since 3.1 */ @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY) public interface PersistentIdGenerator extends Serializable { /** * Generates a PersistentId based on some algorithm plus the principal. * * @param principal the principal to generate the id for. * @param service the service for which the id may be generated. * @return the generated persistent id. */ String generate(Principal principal, Service service); }