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

时间:2010-08-04 08:47:06

标签: java applet

我有一个需要访问主机系统的applet(启动程序,查询系统设置等)。小程序已签名,当最终用户接受我的证书时,小程序可以在最终用户计算机上随意做任何事情。如果最终用户拒绝证书,applet仍然运行,但它无法执行它的职责。

我使用System.getProperty(“java.io.tmpdir”)来确定applet是否受限制。这适用于Windows,但不知何故Java在Mac OS上的表现不同。 (我认为Java的一个重点是拥有一个具有明确定义的行为的系统无关语言 - 但我最终为Mac和Windows编写特定代码 - 就像我使用C ++一样)。

是否有可靠的方法来确定applet在哪个安全上下文中运行?

1 个答案:

答案 0 :(得分:0)

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;
         }
     }
}

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