Class ScriptBasedMapper

    • Constructor Detail

      • ScriptBasedMapper

        public ScriptBasedMapper()
    • Method Detail

      • transformAttributeStatement

        public void transformAttributeStatement​(AttributeStatementType attributeStatement,
                                                ProtocolMapperModel mappingModel,
                                                KeycloakSession session,
                                                UserSessionModel userSession,
                                                AuthenticatedClientSessionModel clientSession)
        This method attaches one or many attributes to the passed attribute statement. To obtain the attribute values, it executes the mapper's script and returns attaches the returned value to the attribute. If the returned attribute is an Array or is iterable, the mapper will either return multiple attributes, or an attribute with multiple values. The variant chosen depends on the configuration of the mapper
        Specified by:
        transformAttributeStatement in interface SAMLAttributeStatementMapper
        Parameters:
        attributeStatement - The attribute statements to be added to a token
        mappingModel - The mapping model reflects the values that are actually input in the GUI
        session - The current session
        userSession - The current user session
        clientSession - The current client session
      • create

        public static ProtocolMapperModel create​(String name,
                                                 String samlAttributeName,
                                                 String nameFormat,
                                                 String friendlyName,
                                                 String script,
                                                 boolean singleAttribute)
        Creates an protocol mapper model for the this script based mapper. This mapper model is meant to be used for testing, as normally such objects are created in a different manner through the keycloak GUI.
        Parameters:
        name - The name of the mapper (this has no functional use)
        samlAttributeName - The name of the attribute in the SAML attribute
        nameFormat - can be "basic", "URI reference" or "unspecified"
        friendlyName - a display name, only useful for the keycloak GUI
        script - the javascript to be executed by the mapper
        singleAttribute - If true, all groups will be stored under one attribute with multiple attribute values
        Returns:
        a Protocol Mapper for a group mapping