You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
/*
|
|
* Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
package com.sun.jmx.mbeanserver;
|
|
|
|
import javax.management.loading.ClassLoaderRepository;
|
|
|
|
/**
|
|
* Fix security hole in ClassLoaderRepository. This class wraps
|
|
* the actual ClassLoaderRepository implementation so that
|
|
* only the methods from {@link javax.management.loading.ClassLoaderRepository}
|
|
* can be accessed (read-only).
|
|
*
|
|
* @since 1.5
|
|
*/
|
|
final class SecureClassLoaderRepository
|
|
implements ClassLoaderRepository {
|
|
|
|
private final ClassLoaderRepository clr;
|
|
/**
|
|
* Creates a new secure ClassLoaderRepository wrapping an
|
|
* unsecure implementation.
|
|
* @param clr Unsecure {@link ClassLoaderRepository} implementation
|
|
* to wrap.
|
|
**/
|
|
public SecureClassLoaderRepository(ClassLoaderRepository clr) {
|
|
this.clr=clr;
|
|
}
|
|
public final Class<?> loadClass(String className)
|
|
throws ClassNotFoundException {
|
|
return clr.loadClass(className);
|
|
}
|
|
public final Class<?> loadClassWithout(ClassLoader loader,
|
|
String className)
|
|
throws ClassNotFoundException {
|
|
return clr.loadClassWithout(loader,className);
|
|
}
|
|
public final Class<?> loadClassBefore(ClassLoader loader,
|
|
String className)
|
|
throws ClassNotFoundException {
|
|
return clr.loadClassBefore(loader,className);
|
|
}
|
|
}
|