java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11.wrapper?

标签 java

我的小程序无法执行以下语句:

Method p11Getinstance = PKCS11.class.getMethod("getInstance", String.class,
        String.class, CK_C_INITIALIZE_ARGS.class, Boolean.TYPE);

并抛出异常:

java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11.wrapper)

如果我在javahome中编辑java.policy,上面的异常就会消失,但我不想这样走。我想编辑我的代码。

当我尝试添加一些语句时:

AccessController.doPrivileged(new PrivilegedAction() {

    @Override
    public Object run() {
        try {
            p11Getinstance = PKCS11.class.getMethod("getInstance", String.class, String.class, CK_C_INITIALIZE_ARGS.class, Boolean.TYPE);
        } catch (Exception e) {
        }
        return null;
    }
});

然后用我的证书对小程序的jar文件进行签名,还会出现这个异常吗?

最佳答案

我认为您必须在 .java.policy 文件中添加以下权限:

permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11.wrapper";
permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11";

关于java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11.wrapper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228408/

相关文章:

java - 无法使用 Java 通过 CLI 命令创建 Google 云数据流模板

java - Spring 和 JPA : Create database schema and tables on demand

java - 尝试使用 AES 加密和解密字符串时出现 IllegalBlockSizeException

java - CountDownTimer cancel() 不会取消计时器并继续工作

java - 如何让 Integer#parseInt 在过载时返回一个值

java - Nashorn 脚本引擎。如何将 "org"对象从全局范围共享到局部范围?

java - 改进数组搜索

Javafx 导航栏问题

java - 如何使用 Java Stream API 在抽象数据类型中的 List<String> 中搜索作为其他抽象数据类型的属性

java - Spring Boot 应用程序未在 Tomcat openshift 中启动