签名java applet

时间:2010-07-20 16:06:47

标签: java security applet signed-applet

我正在创建一个带有未签名applet的套接字连接到另一个主机,我收到了java.security.AccessControlException:access denied

如果我使用“self-cert”或“CA cert”对此applet进行签名,则applet会获得创建与其他主机(不是从中下载的主机)的套接字连接的权限,并执行安全性消息弹出窗口,如果它已被CA认证?

由于

2 个答案:

答案 0 :(得分:4)

如果您不对applet签名,则不会以任何方式执行访问本地资源的代码。

如果您使用自我证书对applet进行签名,则最终用户只会收到一条警告消息,要求获得权限。但是,您仍然需要将调用包含在AccessController#doPrivileged()内。

public void init() {
    AccessController.doPrivileged(new PrivilegedAction<Object> {
        @Override public Object run() {
            // Put your original init() here.
            return null;
        }
    });
}

如果您使用$$$ - cert对applet进行签名,则最终用户将不会收到警告消息。

答案 1 :(得分:0)

除非已禁用或始终接受证书,否则您应该看到证书的相应对话框。只有在用户同意的情况下,代码才具有完全权限。

更好的方法是坚持只连接到同一个来源的主机。