/** * Get the Created value. * * @param messageContext the current message context * * @return the effective Created DateTime value to use */ @Nullable protected DateTime getCreatedValue(@Nonnull final MessageContext messageContext) { DateTime value = null; WSSecurityContext security = messageContext.getSubcontext(WSSecurityContext.class, false); if (security != null) { value = security.getTimestampCreated(); } if (value == null && getCreatedLookup() != null) { value = getCreatedLookup().apply(messageContext); } if (value == null) { if (isUseCurrentTimeAsDefaultCreated()) { value = new DateTime(); } } return value; }
/** * Get the Expires value. * * @param messageContext the current message context * @param created the created value, if any * * @return the effective Expires DateTime value to use */ @Nullable protected DateTime getExpiresValue(@Nonnull final MessageContext messageContext, @Nullable final DateTime created) { DateTime value = null; WSSecurityContext security = messageContext.getSubcontext(WSSecurityContext.class, false); if (security != null) { value = security.getTimestampExpires(); } if (value == null && getExpiresLookup() != null) { value = getExpiresLookup().apply(messageContext); } if (value == null) { if (getExpiresOffsetFromCreated() != null && created != null) { return created.plus(getExpiresOffsetFromCreated()); } } return value; }
/** {@inheritDoc} */ protected boolean doPreInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException { if (!super.doPreInvoke(messageContext)) { return false; } WSAddressingContext addressing = messageContext.getSubcontext(WSAddressingContext.class, false); if (addressing != null) { relatesToURI = addressing.getRelatesToURI(); if (relationshipType == null) { relationshipType = addressing.getRelatesToRelationshipType(); } } if (relatesToURI == null && getRelatesToURILookup() != null) { relatesToURI = getRelatesToURILookup().apply(messageContext); } if (relatesToURI == null) { log.debug("No WS-Addressing RelatesTo value found in message context, skipping further processing"); return false; } return true; }