< prev index next >

src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java

Print this page




  82      * @param baseURI
  83      * @param secureValidation
  84      * @return the instance
  85      *
  86      * @throws ResourceResolverException
  87      */
  88     public static final ResourceResolver getInstance(
  89         Attr uriAttr, String baseURI, boolean secureValidation
  90     ) throws ResourceResolverException {
  91         ResourceResolverContext context = new ResourceResolverContext(uriAttr, baseURI, secureValidation);
  92         return internalGetInstance(context);
  93     }
  94 
  95     private static <N> ResourceResolver internalGetInstance(ResourceResolverContext context)
  96             throws ResourceResolverException {
  97         synchronized (resolverList) {
  98             for (ResourceResolver resolver : resolverList) {
  99                 ResourceResolver resolverTmp = resolver;
 100                 if (!resolver.resolverSpi.engineIsThreadSafe()) {
 101                     try {
 102                         resolverTmp =
 103                             new ResourceResolver(resolver.resolverSpi.getClass().newInstance());


 104                     } catch (InstantiationException e) {
 105                         throw new ResourceResolverException("", e, context.attr, context.baseUri);
 106                     } catch (IllegalAccessException e) {
 107                         throw new ResourceResolverException("", e, context.attr, context.baseUri);
 108                     }
 109                 }
 110 
 111                 if (log.isLoggable(java.util.logging.Level.FINE)) {
 112                     log.log(java.util.logging.Level.FINE,
 113                         "check resolvability by class " + resolverTmp.getClass().getName()
 114                     );
 115                 }
 116 
 117                 if ((resolverTmp != null) && resolverTmp.canResolve(context)) {
 118                     // Check to see whether the Resolver is allowed
 119                     if (context.secureValidation
 120                         && (resolverTmp.resolverSpi instanceof ResolverLocalFilesystem
 121                             || resolverTmp.resolverSpi instanceof ResolverDirectHTTP)) {
 122                         Object exArgs[] = { resolverTmp.resolverSpi.getClass().getName() };
 123                         throw new ResourceResolverException(


 229         try {
 230             Class<ResourceResolverSpi> resourceResolverClass =
 231                 (Class<ResourceResolverSpi>) Class.forName(className);
 232             register(resourceResolverClass, true);
 233         } catch (ClassNotFoundException e) {
 234             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 235         }
 236     }
 237 
 238     /**
 239      * Registers a ResourceResolverSpi class. This method logs a warning if the class
 240      * cannot be registered.
 241      * @param className
 242      * @param start
 243      * @throws SecurityException if a security manager is installed and the
 244      *    caller does not have permission to register a resource resolver
 245      */
 246     public static void register(Class<? extends ResourceResolverSpi> className, boolean start) {
 247         JavaUtils.checkRegisterPermission();
 248         try {

 249             ResourceResolverSpi resourceResolverSpi = className.newInstance();
 250             register(resourceResolverSpi, start);
 251         } catch (IllegalAccessException e) {
 252             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 253         } catch (InstantiationException e) {
 254             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 255         }
 256     }
 257 
 258     /**
 259      * Registers a ResourceResolverSpi instance. This method logs a warning if the class
 260      * cannot be registered.
 261      * @param resourceResolverSpi
 262      * @param start
 263      * @throws SecurityException if a security manager is installed and the
 264      *    caller does not have permission to register a resource resolver
 265      */
 266     public static void register(ResourceResolverSpi resourceResolverSpi, boolean start) {
 267         JavaUtils.checkRegisterPermission();
 268         synchronized(resolverList) {




  82      * @param baseURI
  83      * @param secureValidation
  84      * @return the instance
  85      *
  86      * @throws ResourceResolverException
  87      */
  88     public static final ResourceResolver getInstance(
  89         Attr uriAttr, String baseURI, boolean secureValidation
  90     ) throws ResourceResolverException {
  91         ResourceResolverContext context = new ResourceResolverContext(uriAttr, baseURI, secureValidation);
  92         return internalGetInstance(context);
  93     }
  94 
  95     private static <N> ResourceResolver internalGetInstance(ResourceResolverContext context)
  96             throws ResourceResolverException {
  97         synchronized (resolverList) {
  98             for (ResourceResolver resolver : resolverList) {
  99                 ResourceResolver resolverTmp = resolver;
 100                 if (!resolver.resolverSpi.engineIsThreadSafe()) {
 101                     try {
 102                         @SuppressWarnings("deprecation")
 103                         ResourceResolver tmp = new ResourceResolver(resolver.resolverSpi.getClass().newInstance());
 104                         resolverTmp = tmp;
 105                             ;
 106                     } catch (InstantiationException e) {
 107                         throw new ResourceResolverException("", e, context.attr, context.baseUri);
 108                     } catch (IllegalAccessException e) {
 109                         throw new ResourceResolverException("", e, context.attr, context.baseUri);
 110                     }
 111                 }
 112 
 113                 if (log.isLoggable(java.util.logging.Level.FINE)) {
 114                     log.log(java.util.logging.Level.FINE,
 115                         "check resolvability by class " + resolverTmp.getClass().getName()
 116                     );
 117                 }
 118 
 119                 if ((resolverTmp != null) && resolverTmp.canResolve(context)) {
 120                     // Check to see whether the Resolver is allowed
 121                     if (context.secureValidation
 122                         && (resolverTmp.resolverSpi instanceof ResolverLocalFilesystem
 123                             || resolverTmp.resolverSpi instanceof ResolverDirectHTTP)) {
 124                         Object exArgs[] = { resolverTmp.resolverSpi.getClass().getName() };
 125                         throw new ResourceResolverException(


 231         try {
 232             Class<ResourceResolverSpi> resourceResolverClass =
 233                 (Class<ResourceResolverSpi>) Class.forName(className);
 234             register(resourceResolverClass, true);
 235         } catch (ClassNotFoundException e) {
 236             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 237         }
 238     }
 239 
 240     /**
 241      * Registers a ResourceResolverSpi class. This method logs a warning if the class
 242      * cannot be registered.
 243      * @param className
 244      * @param start
 245      * @throws SecurityException if a security manager is installed and the
 246      *    caller does not have permission to register a resource resolver
 247      */
 248     public static void register(Class<? extends ResourceResolverSpi> className, boolean start) {
 249         JavaUtils.checkRegisterPermission();
 250         try {
 251             @SuppressWarnings("deprecation")
 252             ResourceResolverSpi resourceResolverSpi = className.newInstance();
 253             register(resourceResolverSpi, start);
 254         } catch (IllegalAccessException e) {
 255             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 256         } catch (InstantiationException e) {
 257             log.log(java.util.logging.Level.WARNING, "Error loading resolver " + className + " disabling it");
 258         }
 259     }
 260 
 261     /**
 262      * Registers a ResourceResolverSpi instance. This method logs a warning if the class
 263      * cannot be registered.
 264      * @param resourceResolverSpi
 265      * @param start
 266      * @throws SecurityException if a security manager is installed and the
 267      *    caller does not have permission to register a resource resolver
 268      */
 269     public static void register(ResourceResolverSpi resourceResolverSpi, boolean start) {
 270         JavaUtils.checkRegisterPermission();
 271         synchronized(resolverList) {


< prev index next >