Java:是否可以关闭包(限制向其添加类)

时间:2014-05-24 10:14:07

标签: java security package

标题几乎都说明了。 如果我提供了一个库并且有人使用它,他可以编写类并将它们添加到我的库定义的包中。然而,这会增加安全性问题,因为这意味着他可以访问库中没有访问修饰符定义的方法。

是否有禁止用户向现有软件包添加类的解决方案?

1 个答案:

答案 0 :(得分:0)

是(但)。 sealed清单属性将封装包,防止包含其他来源的类。 (technote)

虽然这取决于具体情况。如果使用它的人首先使用库jar文件,那么它的游戏就结束了。

如果库和客户端代码都由同一个类加载器加载,那么这通常会产生问题,尽管使用不同签名签名的类不能在同一个包中共存。如果使用不同的类加载器,即使使用父子关系,那么在运行时具有相同名称但由不同类加载器加载的包是不同的包。

对于Java PlugIn和Java WebStart,Trusted-Library清单条目会将jar滑入父类加载器,从而保护它免受可能不受信任的应用程序代码的影响。