Class TemplateRequestURLBuilder

java.lang.Object
org.opensaml.saml.metadata.resolver.impl.TemplateRequestURLBuilder
All Implemented Interfaces:
Function<CriteriaSet,String>

public class TemplateRequestURLBuilder extends Object implements Function<CriteriaSet,String>
Function which produces a URL by substituting an entity ID value from criteria into a Velocity template string.

The entity ID will be replaced in the template string according to the template variable entityID, e.g. "https://metadataservice.com/entity/${entityID}".

The value of the encodingStyle parameter determines whether and how the entity ID will be encoded prior to substitution, and accepts an enum value from TemplateRequestURLBuilder.EncodingStyle. Legacy deprecated constructors accept an encoded parameter, where true means TemplateRequestURLBuilder.EncodingStyle.form and false means TemplateRequestURLBuilder.EncodingStyle.none.

  • Field Details

    • CONTEXT_KEY_ENTITY_ID

      public static final String CONTEXT_KEY_ENTITY_ID
      The Velocity context variable name for the entity ID.
      See Also:
    • log

      private final org.slf4j.Logger log
      Logger.
    • template

      private Template template
      Velocity template instance used to render the request URL.
    • templateText

      private String templateText
      The template text, for logging purposes.
    • transformer

      private Function<String,String> transformer
      Function which transforms the entityID prior to substitution into the template.
    • entityIDEncodingStyle

      private TemplateRequestURLBuilder.EncodingStyle entityIDEncodingStyle
      Enum value indicating whether and how to encode the entity ID value before substitution.
  • Constructor Details

    • TemplateRequestURLBuilder

      public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, @Nullable TemplateRequestURLBuilder.EncodingStyle encodingStyle)
      Constructor.

      The template character set will be US ASCII.

      Parameters:
      engine - the VelocityEngine instance to use
      templateString - the Velocity template string
      encodingStyle - the style for encoding the entity ID prior to substitution, null means TemplateRequestURLBuilder.EncodingStyle.none
    • TemplateRequestURLBuilder

      public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, @Nullable TemplateRequestURLBuilder.EncodingStyle encodingStyle, @Nullable Function<String,String> transform)
      Constructor.

      The template character set will be US ASCII.

      Parameters:
      engine - the VelocityEngine instance to use
      templateString - the Velocity template string
      transform - function which transforms the entityID prior to substitution, may be null
      encodingStyle - the style for encoding the entity ID prior to substitution, null means TemplateRequestURLBuilder.EncodingStyle.none
    • TemplateRequestURLBuilder

      public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, TemplateRequestURLBuilder.EncodingStyle encodingStyle, @Nullable Function<String,String> transform, @Nullable Charset charSet)
      Constructor.
      Parameters:
      engine - the VelocityEngine instance to use
      templateString - the Velocity template string
      encodingStyle - the style for encoding the entity ID prior to substitution, null means TemplateRequestURLBuilder.EncodingStyle.none
      transform - function which transforms the entityID prior to substitution, may be null
      charSet - character set of the template, may be null
  • Method Details