1

最近关于 SO 的一个问题让我找到了关于 Java 安全管理器的旧答案。我在那个答案中关于这条线的问题:

安全管理器虽然会影响性能,但很少在服务器端使用。

有人可以支持或反驳吗?我认为总是有一个安全管理器,一个自定义的或默认的,并且容器一直使用它。

4

1 回答 1

1

在您自己编写的服务器端代码中,我认为您不需要使用 SecurityManager,因为如果您正在编写代码以在应用程序中执行某些操作则不太可能需要检查您的代码是否具有您授予它的权限。

例如,SecurityManager 中的很多方法都与 IO 操作相关 - checkDelete(), checkRead(),checkWrite()等。JDK 库类会在您尝试创建/写入/读取/删除文件时调用这些方法,因此您自己调用它们毫无意义.

因此,您的服务器端代码不太可能大量使用 SecurityManager。但是,运行您的代码的代码(例如,如果您部署在 servlet 容器中)可能会使用这些方法,因为它们有兴趣确定您的代码是否具有他们授予的某种级别的权限。

于 2013-02-15T21:24:36.447 回答