密钥库中的用户不能在.policy中拥有权限



我需要在.policy文件中授予用户完全访问权限

keystore "file:myKeystore.keystore";
grant signedBy "myUser" {
permission java.util.PropertyPermission "*", "read,write";
permission java.io.FilePermission "<<ALL FILES>>", "read";
};

我得到这个错误:

Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.name" "read")

执行是这样完成的:

$ keytool -genkey -keyalg RSA -alias myTestKey -keystore myKeystore.keystore -validity 360
$ jarsigner -keystore myKeystore.keystore -verbose security-test.jar myTestKey
$ java -Djava.security.manager -Djava.security.policy=./custom-policy.policy -jar security-test.jar testfile.txt

我试图给出完整的路径,但它也不起作用。我还试图删除该用户,看看.策略是否有效,是的,它是:

grant  {
permission java.util.PropertyPermission "*", "read,write";
permission java.io.FilePermission "<<ALL FILES>>", "read";
};

您需要为您的定制policy.policy提供使用密钥库的密码。

策略文件的前两行必须如下所示。

keystore "file:PATH_TO_YOUR_KEYSTORE";
keystorePasswordURL "file:PATH_TO_YOUR_KEYSTORE_PASSWORD_FILE";

对于密码文件,你可以这样做:

echo "KEYSTORE_PASSWORD" > KEYSTORE_PASSWORD_FILE

请记住,这不适合生产环境,但也许它可以在您的使用环境中发挥作用。

此外,signedBy指令使用的别名此处必须是myTestKey,而不是myUser。

相关内容

  • 没有找到相关文章

最新更新