|  |  | 
 |  |  | import org.keycloak.Config; | 
 |  |  | import org.keycloak.models.KeycloakSession; | 
 |  |  | import org.keycloak.models.KeycloakSessionFactory; | 
 |  |  | import org.keycloak.models.ProtocolMapperModel; | 
 |  |  | import org.keycloak.protocol.ProtocolMapper; | 
 |  |  | import org.keycloak.protocol.cas.CASLoginProtocol; | 
 |  |  | import org.keycloak.protocol.oidc.mappers.OIDCAttributeMapperHelper; | 
 |  |  |  | 
 |  |  | import java.util.Map; | 
 |  |  |  | 
 |  |  | public abstract class AbstractCASProtocolMapper implements ProtocolMapper, CASAttributeMapper { | 
 |  |  |     public static final String TOKEN_MAPPER_CATEGORY = "Token mapper"; | 
 |  |  | 
 |  |  |     public String getDisplayCategory() { | 
 |  |  |         return TOKEN_MAPPER_CATEGORY; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     protected void setMappedAttribute(Map<String, Object> attributes, ProtocolMapperModel mappingModel, Object attributeValue) { | 
 |  |  |         setPlainAttribute(attributes, mappingModel, OIDCAttributeMapperHelper.mapAttributeValue(mappingModel, attributeValue)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     protected void setPlainAttribute(Map<String, Object> attributes, ProtocolMapperModel mappingModel, Object attributeValue) { | 
 |  |  |         String protocolClaim = mappingModel.getConfig().get(OIDCAttributeMapperHelper.TOKEN_CLAIM_NAME); | 
 |  |  |         if (protocolClaim == null || attributeValue == null) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         attributes.put(protocolClaim, attributeValue); | 
 |  |  |     } | 
 |  |  | } |