java.policy配置可粘贴_java-如何使用自定义PolicySpi

我正在尝试实现自定义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 perm = new FilePermission("path/file", "read");

AccessController.checkPermission(perm);

授予权限

有关如何授予文件权限的其他示例,建议您阅读以下内容:

那应该带给您很长的路要走!祝好运!

标签:policy,security,permissions,java

来源: https://codeday.me/bug/20191122/2056726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值