我有一个需要访问主机系统的applet(启动程序,查询系统设置等)。小程序已签名,当最终用户接受我的证书时,小程序可以在最终用户计算机上随意做任何事情。如果最终用户拒绝证书,applet仍然运行,但它无法执行它的职责。
我使用System.getProperty(“java.io.tmpdir”)来确定applet是否受限制。这适用于Windows,但不知何故Java在Mac OS上的表现不同。 (我认为Java的一个重点是拥有一个具有明确定义的行为的系统无关语言 - 但我最终为Mac和Windows编写特定代码 - 就像我使用C ++一样)。
是否有可靠的方法来确定applet在哪个安全上下文中运行?
答案 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;
}
}
}
(通常免责声明:未经测试,未编译)