我創造一個無符號的applet到不同的主機的套接字連接和我得到java.security.AccessControlException:拒絕訪問簽名Java小程序
如果我不是「自我證書」簽署該applet或「CA cert」applet是否獲得了創建到不同主機的套接字連接的權限(與下載的主機不是同一個主機),並且如果已經通過CA認證,它會彈出安全消息嗎?
感謝
我創造一個無符號的applet到不同的主機的套接字連接和我得到java.security.AccessControlException:拒絕訪問簽名Java小程序
如果我不是「自我證書」簽署該applet或「CA cert」applet是否獲得了創建到不同主機的套接字連接的權限(與下載的主機不是同一個主機),並且如果已經通過CA認證,它會彈出安全消息嗎?
感謝
如果你不籤的小程序,這是訪問本地資源的代碼不會以任何方式執行。
如果您使用self-cert對applet進行簽名,則最終用戶只會收到一條警告消息,要求獲得許可。不過,您仍然需要將呼叫包裝在AccessController#doPrivileged()
之內。
public void init() {
AccessController.doPrivileged(new PrivilegedAction<Object> {
@Override public Object run() {
// Put your original init() here.
return null;
}
});
}
如果使用$$$-cert簽名applet,enduser將不會收到警告消息。
您應該看到適當的證書對話框,除非禁用或始終接受證書。只有在用戶同意的情況下,代碼才具有完整的權限。
更好的方法是堅持只連接到相同來源的主機。
如果堆棧中沒有不可信代碼,則不需要使用'doPrivileged'。無論證書是有效的還是自簽名的,警告對話框都是相同的。 – 2010-07-20 16:13:26
我想跨域套接字連接不受信任? – Adam 2010-07-20 16:30:52