Class MetadataQueryProtocolRequestURLBuilder
- java.lang.Object
-
- org.opensaml.saml.metadata.resolver.impl.MetadataQueryProtocolRequestURLBuilder
-
- All Implemented Interfaces:
Function<CriteriaSet,String>
public class MetadataQueryProtocolRequestURLBuilder extends Object implements Function<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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder
Interface for a component which builds a Metadata Query Protocol request URL from a base URL and criteria.
-
Field Summary
Fields Modifier and Type Field Description private String
base
The request base URL per the specification.private org.slf4j.Logger
log
Logger.private Escaper
pathEscaper
Path escaper for escaping the input value inserted into the URL path.private Function<String,String>
transformer
Function which transforms the entityID prior to substitution into the URL.private List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder>
urlBuilders
List of secondary URL builders.
-
Constructor Summary
Constructors Constructor Description MetadataQueryProtocolRequestURLBuilder(String baseURL)
Constructor.MetadataQueryProtocolRequestURLBuilder(String baseURL, Function<String,String> transform)
Constructor.MetadataQueryProtocolRequestURLBuilder(String baseURL, Function<String,String> transform, List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder> secondaryURLBuilders)
Constructor.MetadataQueryProtocolRequestURLBuilder(String baseURL, List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder> secondaryURLBuilders)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
apply(CriteriaSet criteria)
private String
buildFromEntityID(String inputEntityID)
Build request URL from entityID.private String
buildFromSecondaryLookups(CriteriaSet criteria)
Build request URL from secondary lookup criteria.
-
-
-
Field Detail
-
log
private final org.slf4j.Logger log
Logger.
-
base
private String base
The request base URL per the specification.
-
transformer
private Function<String,String> transformer
Function which transforms the entityID prior to substitution into the URL.
-
pathEscaper
private Escaper pathEscaper
Path escaper for escaping the input value inserted into the URL path.
-
urlBuilders
private List<MetadataQueryProtocolRequestURLBuilder.MetadataQueryProtocolURLBuilder> urlBuilders
List of secondary URL builders.
-
-
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 respondertransform
- 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 respondersecondaryURLBuilders
- 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 respondertransform
- function which transforms the entityID prior to URL construction substitution, may be nullsecondaryURLBuilders
- the list of secondary URL builders, may be null
-
-
Method Detail
-
apply
@Nullable public String apply(@Nullable CriteriaSet criteria)
- Specified by:
apply
in interfaceFunction<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 CriteriaSet criteria)
Build request URL from secondary lookup criteria.- Parameters:
criteria
- the criteria- Returns:
- the request URL, or null
-
-