/** {@inheritDoc} */ @Override protected boolean doPreInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException { if (!super.doPreInvoke(messageContext)) { return false; } peerContext = messageContext.getSubcontext(SAMLPeerEntityContext.class); if (peerContext == null || peerContext.getRole() == null) { throw new MessageHandlerException("SAMLPeerEntityContext was missing or unpopulated"); } samlProtocolContext = messageContext.getSubcontext(SAMLProtocolContext.class); if (samlProtocolContext == null || samlProtocolContext.getProtocol() == null) { throw new MessageHandlerException("SAMLProtocolContext was missing or unpopulated"); } return true; }
/** {@inheritDoc} */ @Override @Nonnull protected CriteriaSet buildCriteriaSet(@Nullable final String entityID, @Nonnull final MessageContext messageContext) throws MessageHandlerException { final CriteriaSet criteriaSet = new CriteriaSet(); if (!Strings.isNullOrEmpty(entityID)) { criteriaSet.add(new EntityIdCriterion(entityID) ); } criteriaSet.add(new EntityRoleCriterion(peerContext.getRole())); criteriaSet.add(new ProtocolCriterion(samlProtocolContext.getProtocol())); criteriaSet.add( new UsageCriterion(UsageType.SIGNING) ); final SecurityParametersContext secParamsContext = messageContext.getSubcontext(SecurityParametersContext.class); if (secParamsContext != null && secParamsContext.getSignatureValidationParameters() != null) { criteriaSet.add( new SignatureValidationParametersCriterion(secParamsContext.getSignatureValidationParameters())); } return criteriaSet; }
/** * Build a criteria set suitable for input to the trust engine. * * @param entityID the candidate issuer entity ID which is being evaluated * @param messageContext the message context which is being evaluated * @return a newly constructly set of criteria suitable for the configured trust engine * @throws MessageHandlerException thrown if criteria set can not be constructed */ @Nonnull protected CriteriaSet buildCriteriaSet(@Nullable final String entityID, @Nonnull final MessageContext messageContext) throws MessageHandlerException { final CriteriaSet criteriaSet = new CriteriaSet(); if (!Strings.isNullOrEmpty(entityID)) { criteriaSet.add(new EntityIdCriterion(entityID)); } criteriaSet.add(new EntityRoleCriterion(peerContext.getRole())); criteriaSet.add(new ProtocolCriterion(samlProtocolContext.getProtocol())); criteriaSet.add(new UsageCriterion(UsageType.SIGNING)); final SecurityParametersContext secParamsContext = messageContext.getSubcontext(SecurityParametersContext.class); if (secParamsContext != null && secParamsContext.getSignatureValidationParameters() != null) { criteriaSet.add( new SignatureValidationParametersCriterion(secParamsContext.getSignatureValidationParameters())); } return criteriaSet; }
/** {@inheritDoc} */ @Override protected boolean doPreInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException { if (!super.doPreInvoke(messageContext)) { return false; } peerContext = messageContext.getSubcontext(SAMLPeerEntityContext.class); if (peerContext == null || peerContext.getRole() == null) { throw new MessageHandlerException("SAMLPeerEntityContext was missing or unpopulated"); } samlProtocolContext = messageContext.getSubcontext(SAMLProtocolContext.class); if (samlProtocolContext == null || samlProtocolContext.getProtocol() == null) { throw new MessageHandlerException("SAMLProtocolContext was missing or unpopulated"); } final SecurityParametersContext secParams = messageContext.getSubcontext(SecurityParametersContext.class); if (secParams == null || secParams.getSignatureValidationParameters() == null || secParams.getSignatureValidationParameters().getSignatureTrustEngine() == null) { throw new MessageHandlerException("No SignatureTrustEngine was available from the MessageContext"); } else { trustEngine = secParams.getSignatureValidationParameters().getSignatureTrustEngine(); } return true; }
outboundContext.getSAMLPeerEndpointContext().setEndpoint(getEndpoint(context)); outboundContext.getSAMLPeerEntityContext().setRole(context.getSAMLPeerEntityContext().getRole()); outboundContext.getSAMLPeerEntityContext().setEntityId(context.getSAMLPeerEntityContext().getEntityId()); outboundContext.getSAMLProtocolContext().setProtocol(context.getSAMLProtocolContext().getProtocol());