如何扩展java.security.SecureClassLoader类?

时间:2009-03-09 12:38:33

标签: java security classloader

我想写自己的ClassLoader。作为Applet的默认ClassLoader,它应该更快,更动态。

但我不知道应该如何实现该方法:

PermissionCollection getPermissions( CodeSource codesource )

如果CodeSource中存在有效证书,则超级实现也不授予任何权限。

我必须自己验证证书,还是已经从Java VM验证并从用户接受?

2 个答案:

答案 0 :(得分:1)

Sun PlugIn和WebStart覆盖getPermissions以检查签名并与用户核实他们是否希望接受证书。这是一个实现细节,将来可能会发生变化。

答案 1 :(得分:1)

如果我错了,请纠正我 - 我想你想要的是在你的applet的初始化中的某个地方创建一个类加载器,然后使用该加载器加载你的后续类。如果是,则applet已经被授予了所有权限,因为它被签名(并且如果用户点击了浏览器警告)。您的getPermissions方法可能如下所示

    PermissionCollection p = new Permissions();
    p.add(new AllPermission());
    return p;