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

时间:2011-08-29 09:34:48

标签: java

我的applet无法实现以下声明:

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

并抛出异常:

  

java.security.AccessControlException:拒绝访问(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;
    }
});

然后使用我的证书签署applet的jar文件,这个例外是否仍会出现?

1 个答案:

答案 0 :(得分:-2)

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

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