private List<EntityDescriptor> readEntityDescriptors(Reader reader) { Document entityDoc; try { entityDoc = StaxUtils.read(reader); } catch (Exception ex) { throw new IllegalArgumentException("Unable to read SAMLRequest as XML."); } XMLObject entityXmlObj; try { entityXmlObj = OpenSAMLUtil.fromDom(entityDoc.getDocumentElement()); } catch (WSSecurityException ex) { throw new IllegalArgumentException( "Unable to convert EntityDescriptor document to XMLObject."); } if (entityXmlObj instanceof EntitiesDescriptor) { return ((EntitiesDescriptor) entityXmlObj).getEntityDescriptors(); } else { return Collections.singletonList((EntityDescriptor) entityXmlObj); } }
/** * Filters entities descriptor. * * @param descriptor entities descriptor to filter */ protected void filterEntitiesDescriptor(@Nonnull final EntitiesDescriptor descriptor) { // First we check any contained EntitiesDescriptors. for (final EntitiesDescriptor group : descriptor.getEntitiesDescriptors()) { filterEntitiesDescriptor(group); } // Next, check contained EntityDescriptors. for (final EntityDescriptor entity : descriptor.getEntityDescriptors()) { filterEntityDescriptor(entity); } }
/** * Filters entities descriptor. * * @param descriptor entities descriptor to filter */ protected void filterEntitiesDescriptor(@Nonnull final EntitiesDescriptor descriptor) { // First we check any contained EntitiesDescriptors. for (final EntitiesDescriptor group : descriptor.getEntitiesDescriptors()) { filterEntitiesDescriptor(group); } // Next, check contained EntityDescriptors. for (final EntityDescriptor entity : descriptor.getEntityDescriptors()) { filterEntityDescriptor(entity); } }
@Override public String getEntityId() { final XMLObject md = getEntityDescriptorElement(); if (md instanceof EntitiesDescriptor) { return ((EntitiesDescriptor) md).getEntityDescriptors().get(0).getEntityID(); } else if (md instanceof EntityDescriptor) { return ((EntityDescriptor) md).getEntityID(); } throw new SAMLException("No idp entityId found"); }
final List<EntityDescriptor> entityDescriptors = descriptor.getEntityDescriptors(); if (!entityDescriptors.isEmpty()) { final List<EntityDescriptor> emptyEntityDescriptors = new ArrayList<>(); if (getRemoveEmptyEntitiesDescriptors()) { if (entitiesDescriptor.getEntityDescriptors().isEmpty() && entitiesDescriptor.getEntitiesDescriptors().isEmpty()) { log.trace("Filtering out empty group {} from group {}", entitiesDescriptor.getName(),
/** {@inheritDoc} */ protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject) throws UnmarshallingException { EntitiesDescriptor entitiesDescriptor = (EntitiesDescriptor) parentSAMLObject; if (childSAMLObject instanceof Extensions) { entitiesDescriptor.setExtensions((Extensions) childSAMLObject); } else if (childSAMLObject instanceof EntitiesDescriptor) { entitiesDescriptor.getEntitiesDescriptors().add((EntitiesDescriptor) childSAMLObject); } else if (childSAMLObject instanceof EntityDescriptor) { entitiesDescriptor.getEntityDescriptors().add((EntityDescriptor) childSAMLObject); } else if (childSAMLObject instanceof Signature) { entitiesDescriptor.setSignature((Signature) childSAMLObject); } else { super.processChildElement(parentSAMLObject, childSAMLObject); } }
List<EntityDescriptor> entityDescriptors = descriptor.getEntityDescriptors(); if (entityDescriptors != null && !entityDescriptors.isEmpty()) { List<EntityDescriptor> emptyEntityDescriptors = new ArrayList<>(); if (getRemoveEmptyEntitiesDescriptors()) { if ((entitiesDescriptor.getEntityDescriptors() == null || entitiesDescriptor.getEntityDescriptors() .isEmpty()) && (entitiesDescriptor.getEntitiesDescriptors() == null || entitiesDescriptor
final Iterator<EntityDescriptor> entityIter = entitiesDescriptor.getEntityDescriptors().iterator(); while (entityIter.hasNext()) { final EntityDescriptor entityChild = entityIter.next(); entitiesDescriptor.getEntityDescriptors().removeAll(toRemove); toRemove.clear();
protected Metadata resolveMetadata(EntitiesDescriptor parsed, List<SimpleKey> verificationKeys, List<SimpleKey> localKeys) { Metadata result = null, current = null; for (EntityDescriptor desc : parsed.getEntityDescriptors()) { if (result == null) { result = resolveMetadata(desc); current = result; } else { Metadata m = resolveMetadata(desc); current.setNext(m); current = m; } Signature signature = validateSignature(desc, verificationKeys); current.setSignature(signature); } return result; }