package org.apereo.cas.services; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.springframework.core.Ordered; import java.io.Serializable; import java.util.Map; /** * Defines the general contract of the attribute release policy for a registered service. * An instance of this attribute filter may determine how principal/global attributes are translated to a * map of attributes that may be released for a registered service. * * @author Misagh Moayyed * @since 4.1.0 */ @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY) public interface RegisteredServiceAttributeFilter extends Serializable, Ordered { /** * Filters the received principal attributes for the given registered service. * * @param givenAttributes the map for the original given attributes * @return a map that contains the filtered attributes. */ Map<String, Object> filter(Map<String, Object> givenAttributes); @Override default int getOrder() { return Ordered.HIGHEST_PRECEDENCE; } }