gpt4 book ai didi

java - System.exit(0) 无需在安全管理器下授予权限

转载 作者:行者123 更新时间:2023-12-02 07:08:15 27 4
gpt4 key购买 nike

System.exit(0); or
System.exit(2);

可以无错误地执行,运行

java -Djava.security.manager -Djava.security.policy==app.policy -cp bin pl.com.App

应用程序策略:

grant {
permission java.io.FilePermission "./*", "read,write";
permission java.net.SocketPermission "localhost:18080", "accept, connect, listen";
//permission java.util.PropertyPermission "java.home", "read";
};

用于写入文件的安全管理器工作正常,当我从 app.policy 中删除授权时,我在执行 new FileWriter("out.txt"); 时正确地得到了异常

C:\workspace_tomcat\secureWeb>java -版本

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)

当我运行时 系统.退出(0);在带有安全管理器的 Tomcat 下的 webapp 中,我正确地得到了异常。

最佳答案

Javadoc 指出 ( http://docs.oracle.com/javase/7/docs/technotes/guides/security/permissions.html ):

Note: The "exitVM.*" permission is automatically granted to all code loaded from the application class path, thus enabling applications to terminate themselves

这适用于您将代码作为独立应用程序运行时。这同样适用于 Tomcat - 它可能会自行关闭。 但是没有扩展到在 Tomcat 容器中运行的程序。这些程序完全由 Tomcat 安全管理器控制:( http://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html )

关于java - System.exit(0) 无需在安全管理器下授予权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com