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