Package net.shibboleth.idp.profile.impl

# Class MetadataQueryRequestDecoder

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.decoder.AbstractMessageDecoder
org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder
net.shibboleth.idp.profile.impl.MetadataQueryRequestDecoder

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `UnmodifiableComponent`, `MessageDecoder`, `HttpServletRequestMessageDecoder`

public class MetadataQueryRequestDecoder extends AbstractHttpServletRequestMessageDecoder
Decodes an incoming metadata query request.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CAS_PARAM`
Name of the query parameter for the CAS protocol: "cas" .
`static final String`
`DETECT_DUPLICATES_PARAM`
Name of the query parameter carrying the detectDuplicateEntityIDs: "detectDuplicateEntityIDs" .
`static final String`
`ENTITY_ID_PARAM`
Name of the query parameter carrying the entityID: "entityID" .
`static final String`
`PROTOCOL_PARAM`
Name of the query parameter carrying the protocol: "protocol" .
`static final String`
`SAML1_PARAM`
Name of the query parameter for the SAML 1 protocol: "saml1" .
`static final String`
`SAML2_PARAM`
Name of the query parameter for the SAML 2 protocol: "saml2" .

### Fields inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder

`BASE_PROTOCOL_MESSAGE_LOGGER_CATEGORY`

## Constructor Summary

Constructors
Constructor
Description
`MetadataQueryRequestDecoder()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doDecode()`
`protected DetectDuplicateEntityIDs`
`getDetectDuplicateEntityIDs(HttpServletRequest request)`
Get the strategy for duplicate entityID detection.
`protected String`
`getEntityID(HttpServletRequest request)`
Get the entityID parameter.
`protected String`
`getProtocol(HttpServletRequest request)`
Get the protocol.

### Methods inherited from class org.opensaml.messaging.decoder.servlet.AbstractHttpServletRequestMessageDecoder

`doInitialize, getHttpServletRequest, getHttpServletRequestSupplier, isCheckDuringInit, setCheckDuringInit, setHttpServletRequestSupplier`

### Methods inherited from class org.opensaml.messaging.decoder.AbstractMessageDecoder

`decode, getMessageContext, getMessageToLog, getProtocolMessageLogger, getProtocolMessageLoggerSubCategory, logDecodedMessage, serializeMessageForLogging, setMessageContext, setProtocolMessageLoggerSubCategory`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.DestructableComponent

`destroy, isDestroyed`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

### Methods inherited from interface org.opensaml.messaging.decoder.MessageDecoder

`decode, getMessageContext`

## Field Details

### ENTITY_ID_PARAM

@Nonnull @NotEmpty public static final String ENTITY_ID_PARAM
Name of the query parameter carrying the entityID: "entityID" .

See Also:
  - Constant Field Values

### PROTOCOL_PARAM

@Nonnull @NotEmpty public static final String PROTOCOL_PARAM
Name of the query parameter carrying the protocol: "protocol" .

See Also:
  - Constant Field Values

### SAML1_PARAM

@Nonnull @NotEmpty public static final String SAML1_PARAM
Name of the query parameter for the SAML 1 protocol: "saml1" .

See Also:
  - Constant Field Values

### SAML2_PARAM

@Nonnull @NotEmpty public static final String SAML2_PARAM
Name of the query parameter for the SAML 2 protocol: "saml2" .

See Also:
  - Constant Field Values

### CAS_PARAM

@Nonnull @NotEmpty public static final String CAS_PARAM
Name of the query parameter for the CAS protocol: "cas" .

See Also:
  - Constant Field Values

### DETECT_DUPLICATES_PARAM

@Nonnull @NotEmpty public static final String DETECT_DUPLICATES_PARAM
Name of the query parameter carrying the detectDuplicateEntityIDs: "detectDuplicateEntityIDs" .

See Also:
  - Constant Field Values

## Constructor Details

### MetadataQueryRequestDecoder

public MetadataQueryRequestDecoder()
Constructor.

## Method Details

### doDecode

protected void doDecode() throws MessageDecodingException

Specified by:
  `doDecode` in class `AbstractMessageDecoder`
Throws:
  `MessageDecodingException`

### getEntityID

@Nonnull @NotEmpty protected String getEntityID(@Nonnull HttpServletRequest request) throws MessageDecodingException
Get the entityID parameter.

Parameters:
  `request` - current HTTP request
Returns:
  the entityID
Throws:
  `MessageDecodingException` - thrown if the request does not contain an entityID

### getProtocol

@Nullable protected String getProtocol(@Nonnull HttpServletRequest request)
Get the protocol.

Parameters:
  `request` - current HTTP request
Returns:
  the protocol, or null

### getDetectDuplicateEntityIDs

@Nullable protected DetectDuplicateEntityIDs getDetectDuplicateEntityIDs(@Nonnull HttpServletRequest request) throws MessageDecodingException
Get the strategy for duplicate entityID detection.

Parameters:
  `request` - current HTTP request
Returns:
  the strategy, or null
Throws:
  `MessageDecodingException` - if the request request contains an invalid value for `detectDuplicateEntityIDs`