package org.keycloak.protocol.cas.mappers; 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"; @Override public String getProtocol() { return CASLoginProtocol.LOGIN_PROTOCOL; } @Override public void close() { } @Override public final ProtocolMapper create(KeycloakSession session) { throw new RuntimeException("UNSUPPORTED METHOD"); } @Override public void init(Config.Scope config) { } @Override public void postInit(KeycloakSessionFactory factory) { } @Override public String getDisplayCategory() { return TOKEN_MAPPER_CATEGORY; } protected void setMappedAttribute(Map attributes, ProtocolMapperModel mappingModel, Object attributeValue) { setPlainAttribute(attributes, mappingModel, OIDCAttributeMapperHelper.mapAttributeValue(mappingModel, attributeValue)); } protected void setPlainAttribute(Map attributes, ProtocolMapperModel mappingModel, Object attributeValue) { String protocolClaim = mappingModel.getConfig().get(OIDCAttributeMapperHelper.TOKEN_CLAIM_NAME); if (protocolClaim == null || attributeValue == null) { return; } attributes.put(protocolClaim, attributeValue); } }