gpt4 book ai didi

java - 如何通过 jtwitter(twitter API)从 java applet 避免 java.security.AccessControlException

转载 作者:行者123 更新时间:2023-11-30 09:56:46 25 4
gpt4 key购买 nike

我正在编写一个简单的小程序(我的第一个)来从 Twitter 帐户检索最新状态。当从 eclipse 中启动的 javaw.exe 运行时,这工作正常。但是,当从浏览器运行时,出现错误:

java.security.AccessControlException: 访问被拒绝 (java.net.SocketPermission twitter.com:80 connect, resolve)

关于如何避免这种情况有什么建议吗?

电话:

private void updateStatus() {
try {
Twitter client = new Twitter("user", "pw");
Status status = client.getStatus();
addItem(status.toString());
}
catch (Throwable t) {
addItem(t.getMessage());
}
}

客户端连接成功。引发异常的是 getStatus() 调用。我注意到 eclipse 将“-Djava.security.policy=java.policy.applet”添加到 javaw.exe,不确定这是否与它在 eclipse 中而不是在浏览器中工作的原因有任何关系。令人沮丧的是,我尝试使用与 eclipse 成功使用相同的 CL 参数和 PATH 直接运行相同的 javaw.exe 命令。但是,当我直接运行它时,javaw.exe 会立即退出。 jtwitter是 Twitter API 上的一个简单包装器。

最佳答案

浏览器小程序在安全权限较低的沙箱中运行。某些操作是不允许的,例如某些 GUI 操作(以防止小程序在后台 secret 运行键盘记录器)。显然,您尝试执行的操作也是不允许的。

要解决这个问题,您必须签署您的小程序。允许签名的小程序在正常安全权限下运行。为此,您必须创建安全证书并使用 jarsigner 签署您的小程序。 .

无需购买昂贵的证书,至少如果这是一个小型个人项目则不需要。自签名证书就可以了(唯一的麻烦是浏览器会弹出一条消息,说“无法确认证书”或类似的东西)。

另请参阅:Signed applet tutorial

关于java - 如何通过 jtwitter(twitter API)从 java applet 避免 java.security.AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com