Class ResourceResolver

java.lang.Object
org.apache.xml.security.utils.resolver.ResourceResolver

public class ResourceResolver extends Object
During reference validation, we have to retrieve resources from somewhere. This is done by retrieving a Resolver. The resolver needs two arguments: The URI in which the link to the new resource is defined and the baseURI of the file/entity in which the URI occurs (the baseURI is the same as the SystemId).
  • Field Details

    • allowUnsafeResourceResolving

      private static boolean allowUnsafeResourceResolving
    • LOG

      private static final org.slf4j.Logger LOG
    • resolverList

      private static final List<ResourceResolver> resolverList
      these are the system-wide resolvers
    • resolverSpi

      private final ResourceResolverSpi resolverSpi
      Field resolverSpi
  • Constructor Details

    • ResourceResolver

      public ResourceResolver(ResourceResolverSpi resourceResolver)
      Constructor ResourceResolver
      Parameters:
      resourceResolver -
  • Method Details

    • getInstance

      public static final ResourceResolver getInstance(Attr uriAttr, String baseURI, boolean secureValidation) throws ResourceResolverException
      Method getInstance
      Parameters:
      uriAttr -
      baseURI -
      secureValidation -
      Returns:
      the instance
      Throws:
      ResourceResolverException
    • internalGetInstance

      private static <N> ResourceResolver internalGetInstance(ResourceResolverContext context) throws ResourceResolverException
      Throws:
      ResourceResolverException
    • getInstance

      public static ResourceResolver getInstance(Attr uri, String baseURI, List<ResourceResolver> individualResolvers) throws ResourceResolverException
      Method getInstance
      Parameters:
      uri -
      baseURI -
      individualResolvers -
      Returns:
      the instance
      Throws:
      ResourceResolverException
    • getInstance

      public static ResourceResolver getInstance(Attr uri, String baseURI, List<ResourceResolver> individualResolvers, boolean secureValidation) throws ResourceResolverException
      Method getInstance
      Parameters:
      uri -
      baseURI -
      individualResolvers -
      secureValidation -
      Returns:
      the instance
      Throws:
      ResourceResolverException
    • register

      public static void register(String className)
      Registers a ResourceResolverSpi class. This method LOGs a warning if the class cannot be registered.
      Parameters:
      className - the name of the ResourceResolverSpi class to be registered
      Throws:
      SecurityException - if a security manager is installed and the caller does not have permission to register a resource resolver
    • registerAtStart

      public static void registerAtStart(String className)
      Registers a ResourceResolverSpi class at the beginning of the provider list. This method LOGs a warning if the class cannot be registered.
      Parameters:
      className - the name of the ResourceResolverSpi class to be registered
      Throws:
      SecurityException - if a security manager is installed and the caller does not have permission to register a resource resolver
    • register

      public static void register(Class<? extends ResourceResolverSpi> className, boolean start)
      Registers a ResourceResolverSpi class. This method LOGs a warning if the class cannot be registered.
      Parameters:
      className -
      start -
      Throws:
      SecurityException - if a security manager is installed and the caller does not have permission to register a resource resolver
    • register

      public static void register(ResourceResolverSpi resourceResolverSpi, boolean start)
      Registers a ResourceResolverSpi instance. This method LOGs a warning if the class cannot be registered.
      Parameters:
      resourceResolverSpi -
      start -
      Throws:
      SecurityException - if a security manager is installed and the caller does not have permission to register a resource resolver
    • registerDefaultResolvers

      public static void registerDefaultResolvers()
      This method registers the default resolvers.
    • resolve

      public XMLSignatureInput resolve(Attr uri, String baseURI, boolean secureValidation) throws ResourceResolverException
      Method resolve
      Parameters:
      uri -
      baseURI -
      Returns:
      the resource
      Throws:
      ResourceResolverException
    • setProperty

      public void setProperty(String key, String value)
      Method setProperty
      Parameters:
      key -
      value -
    • getProperty

      public String getProperty(String key)
      Method getProperty
      Parameters:
      key -
      Returns:
      the value of the property
    • addProperties

      public void addProperties(Map<String,String> properties)
      Method addProperties
      Parameters:
      properties -
    • getPropertyKeys

      public String[] getPropertyKeys()
      Method getPropertyKeys
      Returns:
      all property keys.
    • understandsProperty

      public boolean understandsProperty(String propertyToTest)
      Method understandsProperty
      Parameters:
      propertyToTest -
      Returns:
      true if the resolver understands the property
    • isURISafeToResolve

      public static boolean isURISafeToResolve(Attr uriAttr, String baseUri)
    • canResolve

      private boolean canResolve(ResourceResolverContext context)
      Method canResolve
      Parameters:
      context -
      Returns:
      true if it can resolve the uri