java - 如何从 Java Applet 检测当前安全上下文

标签 java applet

我有一个小程序需要访问主机系统(以启动程序、查询系统设置等)。该小程序已签名,当最终用户接受我的证书时,该小程序可以在最终用户计算机上自由地执行几乎所有其所需的操作。如果最终用户拒绝证书,小程序仍会运行,但无法履行其职责。

我已使用 System.getProperty("java.io.tmpdir") 来确定小程序是否受到限制。这在 Windows 上工作得很好,但不知何故 Java 在 Mac OS 上的行为有所不同。 (我认为 Java 的部分要点是拥有一种具有明确定义的行为的独立于系统的语言 - 但我最终为 Mac 和 Windows 编写了特定的代码 - 就像我对 C++ 所做的那样)。

是否有可靠的方法来确定小程序在什么安全上下文中运行?

最佳答案

public static boolean isTrusted() {
     SecurityManager security = System.getSecurityManager();
     if (security == null) {
         return true;
     } else {
         try {
             security.checkPermission(new AllPermission());
             return true;
         } catch (SecurityException exc) {
             return false;
         }
     }
}

(通常免责声明:未经测试,未经编译)

关于java - 如何从 Java Applet 检测当前安全上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3403926/

相关文章:

java - Android 在使用 Retrofit 多部分上传图像时遇到问题?

JAVA获取特定字符第一次出现和最后一次出现之间的字符串

java - 除非我调整大小,否则小程序不会绘画

java - 从java小程序获取正确的本地IP地址

Java Jlist 滚动条

java - 如何在任何应用程序的 JAR 文件中绑定(bind) MySql 数据库?

java - 从 token 过滤器调用时未注入(inject) Autowiring 服务

java - 使用 Eclipse 将 list 添加到 JAR 时 header 字段名称无效

python - 最小化到 gnome 面板

java - 在浏览器中运行java-applet源代码