if (metadataProvider == null) {
log.warn("Message context did not contain a metadata provider, unable to evaluate rule");
return;
}
SPSSODescriptor spssoRole;
try {
spssoRole = (SPSSODescriptor) metadataProvider
.getRole(messageIssuer, SPSSODescriptor.DEFAULT_ELEMENT_NAME, SAMLConstants.SAML20P_NS);
} catch (MetadataProviderException e) {
log.warn("Error resolving SPSSODescriptor metadata for entityID '{}': {}", messageIssuer, e.getMessage());
throw new SecurityPolicyException("Error resolving metadata for entity ID", e);
}
if (spssoRole == null) {
log.warn("SPSSODescriptor role metadata for entityID '{}' could not be resolved", messageIssuer);
return;
}
if (spssoRole.isAuthnRequestsSigned() == Boolean.TRUE) {
if (! isMessageSigned(samlMsgCtx)) {
log.error("SPSSODescriptor for entity ID '{}' indicates AuthnRequests must be signed, "
+ "but inbound message was not signed", messageIssuer);
throw new SecurityPolicyException("Inbound AuthnRequest was required to be signed but was not");
}