Class AlgorithmFilter

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.component.Component, net.shibboleth.utilities.java.support.component.DestructableComponent, net.shibboleth.utilities.java.support.component.InitializableComponent, org.opensaml.saml.metadata.resolver.filter.MetadataFilter

    public class AlgorithmFilter
    extends net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
    implements org.opensaml.saml.metadata.resolver.filter.MetadataFilter
    A filter that adds algorithm extension content to entities in order to drive software behavior based on them.

    The entities to annotate are identified with a Predicate, and multiple algorithms can be associated with each.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Multimap<Predicate<org.opensaml.saml.saml2.metadata.EntityDescriptor>,​org.opensaml.core.xml.XMLObject> applyMap
      Rules for adding algorithms.
      private org.opensaml.saml.common.SAMLObjectBuilder<org.opensaml.saml.saml2.metadata.Extensions> extBuilder
      Builder for Extensions.
      private Logger log
      Class logger.
    • Constructor Summary

      Constructors 
      Constructor Description
      AlgorithmFilter()
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addEncryptionMethod​(org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor, org.opensaml.saml.saml2.metadata.EncryptionMethod encryptionMethod)
      Add EncryptionMethod extension to every KeyDescriptor found in an entity.
      org.opensaml.core.xml.XMLObject filter​(org.opensaml.core.xml.XMLObject metadata, org.opensaml.saml.metadata.resolver.filter.MetadataFilterContext context)
      protected void filterEntitiesDescriptor​(org.opensaml.saml.saml2.metadata.EntitiesDescriptor descriptor)
      Filters entities descriptor.
      protected void filterEntityDescriptor​(org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor)
      Filters entity descriptor.
      protected org.opensaml.saml.saml2.metadata.Extensions getExtensions​(org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor)
      Return existing Extensions object or create it first.
      void setRules​(Map<Predicate<org.opensaml.saml.saml2.metadata.EntityDescriptor>,​Collection<org.opensaml.core.xml.XMLObject>> rules)
      Set the mappings from Predicate to extensions of various types to apply.
      • Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent

        destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
    • Field Detail

      • log

        @Nonnull
        private final Logger log
        Class logger.
      • applyMap

        @Nonnull
        @NonnullElements
        private Multimap<Predicate<org.opensaml.saml.saml2.metadata.EntityDescriptor>,​org.opensaml.core.xml.XMLObject> applyMap
        Rules for adding algorithms.
      • extBuilder

        @Nonnull
        private final org.opensaml.saml.common.SAMLObjectBuilder<org.opensaml.saml.saml2.metadata.Extensions> extBuilder
        Builder for Extensions.
    • Constructor Detail

      • AlgorithmFilter

        public AlgorithmFilter()
        Constructor.
    • Method Detail

      • setRules

        public void setRules​(@Nonnull @NonnullElements
                             Map<Predicate<org.opensaml.saml.saml2.metadata.EntityDescriptor>,​Collection<org.opensaml.core.xml.XMLObject>> rules)
        Set the mappings from Predicate to extensions of various types to apply.
        Parameters:
        rules - rules to apply
      • filter

        @Nullable
        public org.opensaml.core.xml.XMLObject filter​(@Nullable
                                                      org.opensaml.core.xml.XMLObject metadata,
                                                      @Nonnull
                                                      org.opensaml.saml.metadata.resolver.filter.MetadataFilterContext context)
                                               throws org.opensaml.saml.metadata.resolver.filter.FilterException
        Specified by:
        filter in interface org.opensaml.saml.metadata.resolver.filter.MetadataFilter
        Throws:
        org.opensaml.saml.metadata.resolver.filter.FilterException
      • filterEntityDescriptor

        protected void filterEntityDescriptor​(@Nonnull
                                              org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor)
        Filters entity descriptor.
        Parameters:
        descriptor - entity descriptor to filter
      • filterEntitiesDescriptor

        protected void filterEntitiesDescriptor​(@Nonnull
                                                org.opensaml.saml.saml2.metadata.EntitiesDescriptor descriptor)
        Filters entities descriptor.
        Parameters:
        descriptor - entities descriptor to filter
      • getExtensions

        @Nonnull
        protected org.opensaml.saml.saml2.metadata.Extensions getExtensions​(@Nonnull
                                                                            org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor)
        Return existing Extensions object or create it first.
        Parameters:
        descriptor - the surrounding entity
        Returns:
        new or existing extension block
      • addEncryptionMethod

        protected void addEncryptionMethod​(@Nonnull
                                           org.opensaml.saml.saml2.metadata.EntityDescriptor descriptor,
                                           @Nonnull
                                           org.opensaml.saml.saml2.metadata.EncryptionMethod encryptionMethod)
        Add EncryptionMethod extension to every KeyDescriptor found in an entity.
        Parameters:
        descriptor - the entity to modify
        encryptionMethod - extension to add