/** {@inheritDoc} */ @Override @Nullable public DateTime apply(@Nullable final SAMLMessageInfoContext input) { if (input != null) { return input.getMessageIssueInstant(); } else { return null; } }
/** {@inheritDoc} */ @Override @Nullable public String apply(@Nullable final SAMLMessageInfoContext input) { if (input != null) { return input.getMessageId(); } else { return null; } }
/** * Resolve the SAML message from the message context. * * @return the SAML message, or null if it can not be resolved */ @Nullable protected SAMLObject resolveSAMLMessage() { if (getParent() instanceof MessageContext) { final MessageContext parent = (MessageContext) getParent(); if (parent.getMessage() instanceof SAMLObject) { return (SAMLObject) parent.getMessage(); } } return null; }
final String messageId = StringSupport.trimOrNull(msgInfoContext.getMessageId()); if (messageId == null) { if (requiredRule) { DateTime issueInstant = msgInfoContext.getMessageIssueInstant(); if (issueInstant == null) { issueInstant = new DateTime();
/** {@inheritDoc} */ @Override protected void doDecode() throws MessageDecodingException { final IdPInitiatedSSORequest ssoRequest = buildIdPInitiatedSSORequest(); final MessageContext<IdPInitiatedSSORequest> messageContext = new MessageContext<>(); messageContext.setMessage(ssoRequest); messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(ssoRequest.getEntityId()); final SAMLMessageInfoContext msgInfoContext = messageContext.getSubcontext(SAMLMessageInfoContext.class, true); msgInfoContext.setMessageIssueInstant(new DateTime(ssoRequest.getTime(), ISOChronology.getInstanceUTC())); msgInfoContext.setMessageId(getMessageID()); populateBindingContext(messageContext); setMessageContext(messageContext); }
final SAMLObject samlMessage = resolveSAMLMessage(); if (samlMessage instanceof org.opensaml.saml.saml2.core.RequestAbstractType) { org.opensaml.saml.saml2.core.RequestAbstractType request =
/** * Gets the issue instant of the message. * * @return issue instant of the message */ @Nullable public DateTime getMessageIssueInstant() { if (issueInstant == null) { issueInstant = resolveIssueInstant(); } return issueInstant; }
/** * Gets the ID of the message. * * @return ID of the message, may be null */ @Nullable @NotEmpty public String getMessageId() { if (messageId == null) { messageId = resolveMessageId(); } return messageId; }
final SAMLObject samlMessage = resolveSAMLMessage();
final SAMLMessageInfoContext msgInfoContext = messageContext.getSubcontext(SAMLMessageInfoContext.class, true); if (msgInfoContext.getMessageIssueInstant() == null) { if (requiredRule) { log.warn("{} Inbound SAML message issue instant not present in message context", getLogPrefix()); final DateTime issueInstant = msgInfoContext.getMessageIssueInstant(); final DateTime now = new DateTime(DateTimeZone.UTC); final DateTime latestValid = now.plus(getClockSkew());
/** {@inheritDoc} */ @Override @Nullable public String apply(@Nullable final ProfileRequestContext input) { final MessageContext inMsgCtx = input.getInboundMessageContext(); if (inMsgCtx == null) { log.debug("No inbound message context available"); return null; } if (!suppressForBindings.isEmpty()) { final SAMLBindingContext bindingCtx = inMsgCtx.getSubcontext(SAMLBindingContext.class); if (bindingCtx != null && bindingCtx.getBindingUri() != null && suppressForBindings.contains(bindingCtx.getBindingUri())) { log.debug("Inbound binding {} is suppressed, ignoring request ID", bindingCtx.getBindingUri()); return null; } } final SAMLMessageInfoContext infoCtx = inMsgCtx.getSubcontext(SAMLMessageInfoContext.class, true); if (infoCtx == null) { log.debug("No inbound SAMLMessageInfoContext available"); return null; } return infoCtx.getMessageId(); } }
if (samlMsgInfoCtx != null) { log.debug("Saw outbound SAMLMessageInfoContext with message issue instant: {}", samlMsgInfoCtx.getMessageIssueInstant()); outboundMessageContext.getSubcontext(WSSecurityContext.class, true).setTimestampCreated( samlMsgInfoCtx.getMessageIssueInstant()); } else { outboundMessageContext.getSubcontext(WSSecurityContext.class, true).setTimestampCreated(new DateTime());