/** * Conditionally stop a timer at the end of the resolution process. * * @param resolutionContext attribute resolution context */ private void stopTimer(@Nonnull final AttributeResolutionContext resolutionContext) { final BaseContext prc = profileContextStrategy.apply(resolutionContext); if (prc != null) { final MetricContext timerCtx = prc.getSubcontext(MetricContext.class); if (timerCtx != null) { timerCtx.stop(getId()); } } }
/** {@inheritDoc} */ @Override @Nullable public Boolean apply(@Nullable final RelyingPartyContext input) { final BaseContext ctx = input != null ? input.getRelyingPartyIdContextTree() : null; if (ctx != null) { if (ctx instanceof SAMLPeerEntityContext || ctx instanceof SAMLSelfEntityContext) { final SAMLMetadataContext mc = ctx.getSubcontext(SAMLMetadataContext.class); if (mc != null) { return mc.getEntityDescriptor() != null; } } } return false; }
/** * Conditionally start a timer at the beginning of the resolution process. * * @param resolutionContext attribute resolution context * * @return true iff the {@link #stopTimer(AttributeResolutionContext)} method needs to be called */ private boolean startTimer(@Nonnull final AttributeResolutionContext resolutionContext) { final BaseContext prc = profileContextStrategy.apply(resolutionContext); if (prc != null) { final MetricContext timerCtx = prc.getSubcontext(MetricContext.class); if (timerCtx != null) { timerCtx.start(getId()); return true; } } return false; }
/** * Get the artifact source entityID. * * @return the source entityID, may be null */ @Nullable @NotEmpty public String getSourceEntityId() { if (sourceEntityId == null) { if (getParent() != null) { final SAMLSelfEntityContext self = getParent().getSubcontext(SAMLSelfEntityContext.class); if (self != null) { sourceEntityId = self.getEntityId(); } } } return sourceEntityId; }
/** {@inheritDoc} */ @Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) { final MessageChannelSecurityContext channelContext = getParentContext().getSubcontext(MessageChannelSecurityContext.class, true); channelContext.setConfidentialityActive(isConfidentialityActive()); channelContext.setIntegrityActive(isIntegrityActive()); }
/** {@inheritDoc} */ @Override protected void doExecute(ProfileRequestContext profileRequestContext) { final MessageChannelSecurityContext channelContext = getParentContext().getSubcontext(MessageChannelSecurityContext.class, true); final HttpServletRequest request = getHttpServletRequest(); if (request.isSecure() && (!defaultPortInsecure || request.getLocalPort() != 443)) { channelContext.setConfidentialityActive(true); channelContext.setIntegrityActive(true); } else { channelContext.setConfidentialityActive(false); channelContext.setIntegrityActive(false); } }
protected final void addContext(final SAML2MetadataResolver entityId, final BaseContext parentContext, final QName elementName) { final EntityDescriptor entityDescriptor; final RoleDescriptor roleDescriptor; try { final CriteriaSet set = new CriteriaSet(); set.add(new EntityIdCriterion(entityId.getEntityId())); entityDescriptor = this.metadata.resolveSingle(set); if (entityDescriptor == null) { throw new SAMLException("Cannot find entity " + entityId.getEntityId() + " in metadata provider"); } final List<RoleDescriptor> list = entityDescriptor.getRoleDescriptors(elementName, SAMLConstants.SAML20P_NS); roleDescriptor = CommonHelper.isNotEmpty(list) ? list.get(0) : null; if (roleDescriptor == null) { throw new SAMLException("Cannot find entity " + entityId + " or role " + elementName + " in metadata provider"); } } catch (final ResolverException e) { throw new SAMLException("An error occured while getting IDP descriptors", e); } final SAMLMetadataContext mdCtx = parentContext.getSubcontext(SAMLMetadataContext.class, true); mdCtx.setEntityDescriptor(entityDescriptor); mdCtx.setRoleDescriptor(roleDescriptor); } }
.getSubcontext(SAMLBindingContext.class);