📄 bypassclassloader.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: BypassClassLoader.java
package cisco.dsbu.cms.boot.internal.ccl;
import java.io.InputStream;
import java.net.*;
import java.security.*;
import java.util.*;
// Referenced classes of package cisco.dsbu.cms.boot.internal.ccl:
// BypassUrlStreamHandler, ClassData
public abstract class BypassClassLoader extends SecureClassLoader
{
private Map mParentClasses;
private ProtectionDomain mSignedPD;
private ProtectionDomain mUnsignedPD;
private URLStreamHandler urlStreamHandler;
public BypassClassLoader(Class aclass[])
{
mParentClasses = new HashMap(aclass.length);
for(int i = 0; i < aclass.length; i++)
mParentClasses.put(aclass[i].getName(), aclass[i]);
initProtectionDomains();
}
private void initProtectionDomains()
{
mSignedPD = getClass().getProtectionDomain();
Permissions permissions = new Permissions();
for(Enumeration enumeration = mSignedPD.getPermissions().elements(); enumeration.hasMoreElements();)
{
Permission permission = (Permission)enumeration.nextElement();
if(!(permission instanceof AllPermission))
permissions.add(permission);
}
mUnsignedPD = new ProtectionDomain(mSignedPD.getCodeSource(), permissions);
}
public synchronized Class loadClass(String s, boolean flag)
throws ClassNotFoundException
{
Class class1 = findLoadedClass(s);
if(class1 != null)
return class1;
try
{
class1 = findSystemClass(s);
if(class1 != null)
return class1;
}
catch(ClassNotFoundException classnotfoundexception) { }
Object obj = mParentClasses.get(s);
if(obj != null)
return (Class)obj;
class1 = findClass(s);
if(flag)
resolveClass(class1);
return class1;
}
protected synchronized Class findClass(String s)
throws ClassNotFoundException
{
ClassData classdata = getClassData(s);
if(classdata == null)
{
throw new ClassNotFoundException(s);
} else
{
byte abyte0[] = classdata.getContents();
Class class1 = defineClass(s, abyte0, 0, abyte0.length, classdata.isSigned() ? mSignedPD : mUnsignedPD);
return class1;
}
}
public URL getResource(String s)
{
if(urlStreamHandler == null)
urlStreamHandler = new BypassUrlStreamHandler(this);
if(getStream(s) == null)
return null;
URL url = null;
try
{
url = new URL(getUrlProtocol(), null, -1, s, urlStreamHandler);
}
catch(MalformedURLException malformedurlexception) { }
return url;
}
public InputStream getResourceAsStream(String s)
{
return getStream(s);
}
protected abstract ClassData getClassData(String s);
protected abstract InputStream getStream(String s);
protected abstract String getUrlProtocol();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -