if (!(samlMessageContext.getInboundMessageTransport() instanceof HTTPInTransport)) {
log.error("Invalid inbound message transport type, this decoder only support HTTPInTransport");
throw new MessageDecodingException("Invalid inbound message transport type, this decoder only support HTTPInTransport");
}
HTTPInTransport inTransport = (HTTPInTransport) samlMessageContext.getInboundMessageTransport();
HTTPOutTransport outTransport = (HTTPOutTransport) samlMessageContext.getOutboundMessageTransport();
/*
* Artifact parameter.
*/
String artifactId = DatatypeHelper.safeTrimOrNullString(inTransport.getParameterValue("SAMLart"));
if (artifactId == null) {
log.error("SAMLart parameter was missing or did not contain a value.");
throw new MessageDecodingException("SAMLArt parameter was missing or did not contain a value.");
}
log.debug("Artifact id: {}", artifactId);
/*
* Relay state parameter.
*/
samlMessageContext.setRelayState(inTransport.getParameterValue("RelayState"));
log.debug("Decoded RelayState: {}", samlMessageContext.getRelayState());
SAMLObject message = resolutionProfile.resolveArtifact(samlMessageContext, artifactId, getActualReceiverEndpointURI(samlMessageContext));