Class MetadataQueryProtocolRequestURLBuilder

  • All Implemented Interfaces:
    Function<net.shibboleth.utilities.java.support.resolver.CriteriaSet,​String>

    public class MetadataQueryProtocolRequestURLBuilder
    extends Object
    implements Function<net.shibboleth.utilities.java.support.resolver.CriteriaSet,​String>
    Function which produces a URL according to the Metadata Query Protocol (MDQ) specification.

    Support for building request URLs per the MDQ SAML profile based on an EntityIdCriterion is built-in.

    Support for building request URLs via other criteria may be specified via ordered instances of MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder. These are evaluated in the supplied order, and the first non-null result will be returned.

    • Constructor Detail

      • MetadataQueryProtocolRequestURLBuilder

        public MetadataQueryProtocolRequestURLBuilder​(@ParameterName(name="baseURL") @Nonnull @NotEmpty
                                                      String baseURL)
        Constructor.
        Parameters:
        baseURL - the base URL for the metadata responder
      • MetadataQueryProtocolRequestURLBuilder

        public MetadataQueryProtocolRequestURLBuilder​(@ParameterName(name="baseURL") @Nonnull @NotEmpty
                                                      String baseURL,
                                                      @ParameterName(name="transform") @Nullable
                                                      Function<String,​String> transform)
        Constructor.
        Parameters:
        baseURL - the base URL for the metadata responder
        transform - function which transforms the entityID prior to URL construction substitution, may be null
      • MetadataQueryProtocolRequestURLBuilder

        public MetadataQueryProtocolRequestURLBuilder​(@ParameterName(name="baseURL") @Nonnull @NotEmpty
                                                      String baseURL,
                                                      @ParameterName(name="secondaryURLBuilders") @Nullable @NonnullElements
                                                      List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder> secondaryURLBuilders)
        Constructor.
        Parameters:
        baseURL - the base URL for the metadata responder
        secondaryURLBuilders - the list of secondary URL builders, may be null
      • MetadataQueryProtocolRequestURLBuilder

        public MetadataQueryProtocolRequestURLBuilder​(@ParameterName(name="baseURL") @Nonnull @NotEmpty
                                                      String baseURL,
                                                      @ParameterName(name="transform") @Nullable
                                                      Function<String,​String> transform,
                                                      @ParameterName(name="secondaryURLBuilders") @Nullable @NonnullElements
                                                      List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder> secondaryURLBuilders)
        Constructor.
        Parameters:
        baseURL - the base URL for the metadata responder
        transform - function which transforms the entityID prior to URL construction substitution, may be null
        secondaryURLBuilders - the list of secondary URL builders, may be null
    • Method Detail

      • apply

        @Nullable
        public String apply​(@Nullable
                            net.shibboleth.utilities.java.support.resolver.CriteriaSet criteria)
        Specified by:
        apply in interface Function<net.shibboleth.utilities.java.support.resolver.CriteriaSet,​String>
      • buildFromEntityID

        private String buildFromEntityID​(@Nonnull
                                         String inputEntityID)
        Build request URL from entityID.
        Parameters:
        inputEntityID - the entityID
        Returns:
        the request URL, or null
      • buildFromSecondaryLookups

        private String buildFromSecondaryLookups​(@Nonnull
                                                 net.shibboleth.utilities.java.support.resolver.CriteriaSet criteria)
        Build request URL from secondary lookup criteria.
        Parameters:
        criteria - the criteria
        Returns:
        the request URL, or null