- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实现自定义 java.security.Permission
类型,该类型应在运行时检查(因此没有策略文件,但在代码中)。此检查由 java.security.Policy
完成。我知道我应该为此实现自己的 java.security.PolicySpi
。
我找不到任何关于如何初始化和使用 PolicySpi 的解释,或者有更好的方法吗?
最佳答案
在您的问题中,您声明您希望使用 java.security.Policy
检查权限,但不使用 spi.policy
文件。
来自PolicySpi API ,你可以看到一个PolicySpi对象有4个方法:
但是,您可能不需要 PolicySpi,因为有更简单的解决方案来检查权限。
参见:
由于您没有指定您将授予哪种权限,我假设它是关于 java.security.CodeSource 的权限。对象。
检查文件的所有当前权限:
public static void main(String[] args) {
CodeSource source;
try {
source = new CodeSource(new URL("file:/c:/*"), (java.security.cert.Certificate[]) null);
Policy policy = Policy.getPolicy();
System.out.println(policy.getPermissions(source));
} catch (IOException e) {
e.printStackTrace();
}
}
SecurityManager checkPermission()
的一个很好的例子是 this tutorial .
用于检查具体FilePermission s,你可以使用:
FilePermission perm = new FilePermission("path/file", "read");
AccessController.checkPermission(perm);
可以在运行时授予权限 java.lang.RuntimePermission .
有关如何授予文件权限的其他示例,我建议您阅读以下内容:
这应该会给你带来很长的路要走!祝你好运!
关于java - 如何使用自定义 PolicySpi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016669/
我正在尝试实现自定义 java.security.Permission 类型,该类型应在运行时检查(因此没有策略文件,但在代码中)。此检查由 java.security.Policy 完成。我知道我应
我是一名优秀的程序员,十分优秀!