【发布时间】:2013-02-15 21:15:31
【问题描述】:
最近在 SO 上的 question 将我引向了关于 Java 安全管理器的旧 answer。我在那个答案中关于这一行的问题:
虽然安全管理器会影响性能,但它很少在服务器端使用。
有人可以支持或反驳吗?我认为总是有一个安全管理器,一个自定义的或默认的,并且容器一直使用它。
【问题讨论】:
标签: java securitymanager
最近在 SO 上的 question 将我引向了关于 Java 安全管理器的旧 answer。我在那个答案中关于这一行的问题:
虽然安全管理器会影响性能,但它很少在服务器端使用。
有人可以支持或反驳吗?我认为总是有一个安全管理器,一个自定义的或默认的,并且容器一直使用它。
【问题讨论】:
标签: java securitymanager
在您自己编写的服务器端代码中,我认为您不需要使用 SecurityManager,因为如果您正在编写代码以在 中执行某些操作您的应用程序,您不太可能需要检查您的代码是否具有您授予它的权限。
例如,SecurityManager 中的很多方法都与 IO 操作有关 - checkDelete()、checkRead()、checkWrite() 等。JDK 库类会在您尝试创建/写入/读取时调用这些方法/delete 一个文件,所以自己调用它们是没有意义的。
因此,您的服务器端代码不太可能大量使用 SecurityManager。但是,运行您的代码的代码(例如,如果您部署在 servlet 容器中)可能会使用这些方法,因为它们有兴趣确定 您的 代码是否具有某种级别的权限他们给它。
【讨论】:
SecurityManager 对部署到它的(任意)内容实施安全策略,但那里无需在单独部署的单位本身中使用。对吗?