/** {@inheritDoc} */ @Override @Nullable protected String getCertificatePresenterEntityID(@Nonnull final MessageContext messageContext) { AbstractAuthenticatableSAMLEntityContext entityContext = messageContext.getSubcontext(entityContextClass); if (entityContext != null) { log.trace("Found authenticatable entityID '{}' from context: {}", entityContext.getEntityId(), entityContext.getClass().getName()); return entityContext.getEntityId(); } else { log.trace("Authenticatable entityID context was not present: {}", entityContext.getClass().getName()); return null; } }
/** {@inheritDoc} */ @Override @Nullable public Boolean apply(@Nullable final MessageContext input) { if (input != null) { final AbstractAuthenticatableSAMLEntityContext entityCtx = input.getSubcontext(entityContextClass); if (entityCtx != null) { return entityCtx.isAuthenticated(); } } return null; }
/** {@inheritDoc} */ @Override protected void setAuthenticatedState(@Nonnull final MessageContext messageContext, final boolean authenticated) { log.trace("Storing authenticated entity state '{}' in context: {}", authenticated, entityContextClass); messageContext.getSubcontext(entityContextClass, true).setAuthenticated(authenticated); }
/** {@inheritDoc} */ @Override protected void setAuthenticatedCertificatePresenterEntityID(@Nonnull final MessageContext messageContext, @Nullable final String entityID) { log.trace("Storing authenticatable entityID '{}' in context: {}", entityID, entityContextClass); messageContext.getSubcontext(entityContextClass, true).setEntityId(entityID); }
/** {@inheritDoc} */ @Override @Nonnull protected CriteriaSet buildCriteriaSet(@Nullable final String entityID, @Nonnull final MessageContext messageContext) throws MessageHandlerException { final CriteriaSet criteriaSet = super.buildCriteriaSet(entityID, messageContext); try { log.trace("Attempting to build criteria based on contents of entity contxt class of type: {}", entityContextClass.getName()); final AbstractAuthenticatableSAMLEntityContext entityContext = messageContext.getSubcontext(entityContextClass); Constraint.isNotNull(entityContext, "Required authenticatable SAML entity context was not present " + "in message context: " + entityContextClass.getName()); Constraint.isNotNull(entityContext.getRole(), "SAML entity role was null"); criteriaSet.add(new EntityRoleCriterion(entityContext.getRole())); final SAMLProtocolContext protocolContext = messageContext.getSubcontext(SAMLProtocolContext.class); Constraint.isNotNull(protocolContext, "SAMLProtocolContext was null"); Constraint.isNotNull(protocolContext.getProtocol(), "SAML protocol was null"); criteriaSet.add(new ProtocolCriterion(protocolContext.getProtocol())); } catch (final ConstraintViolationException e) { throw new MessageHandlerException(e); } return criteriaSet; }
/** {@inheritDoc} */ @Override @Nullable @NotEmpty public String getEntityId() { if (super.getEntityId() == null) { setEntityId(resolveEntityId()); } return super.getEntityId(); }