- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个尝试相互通信的客户端和服务器程序。在我的服务器策略文件中,我指定了以下内容:
grant signedBy "vivin" {
permission java.io.FilePermission "-", "read, write";
permission java.net.SocketPermission "localhost:2220-2230", "accept, connect, listen, resolve", signedBy "vivin";
};
在我客户的策略文件中,我有:
grant signedBy "vivin" {
permission java.net.SocketPermission "localhost:2220-2230", "accept, connect, listen, resolve", signedBy "vivin";
};
我启动我的服务器,它在端口 2225 上监听。然后我启动我的客户端,它尝试连接到在端口 2225 上监听的服务器。不幸的是,我在服务器上收到此错误:
[java] Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:45944 accept,resolve)
[java] at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
[java] at java.security.AccessController.checkPermission(AccessController.java:546)
[java] at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
[java] at java.lang.SecurityManager.checkAccept(SecurityManager.java:1157)
[java] at java.net.ServerSocket.implAccept(ServerSocket.java:457)
[java] at java.net.ServerSocket.accept(ServerSocket.java:421)
端口号不断变化;我假设它是客户端的端口号(服务器连接回客户端的地方?)。那是对的吗?对于此分配,对端口号指定了限制:
Your client and server should use the Java Security manager, and your project must include policy files for each that defines the necessary permissions for them to run. Allow your server and client to contact each other on localhost using ports in the range 2220-2230.
我怎样才能遵守这个限制?或者这是否仅适用于服务器监听的端口?我认为如果我为大于 2231 的端口授予 accept
和 resolve
权限,我可以让它工作。但我不知道这是否与限制冲突。
最佳答案
因为客户端随机选择它的本地 tcp 端口(我想)你应该给它适当的权限:
grant signedBy "vivin" {
permission java.net.SocketPermission "localhost:1024-", "connect, resolve", signedBy "vivin";
};
客户端没有监听传入的连接,不需要“监听”和“接受”的权限。在服务器上,只要服务器不建立传出 tcp 连接,您就可以放弃“连接”权限。
关于Java SocketPermission 策略问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161947/
我有一个尝试相互通信的客户端和服务器程序。在我的服务器策略文件中,我指定了以下内容: grant signedBy "vivin" { permission java.io.FilePermiss
我正在创建一个 java 小程序来收集和处理来自其他网站的一些数据。该小程序未签名,据我了解,出于安全原因,对其他站点的访问已被阻止。 但是,似乎至少有一个其他站点未被阻止。我试过这段代码: pack
我在连接 Active Directory 时遇到问题。有问题的代码如下: Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTE
我正在尝试制定正确的 Java 安全策略。我的代码需要解析并连接到 login.salesforce.com 和 xx99.salesforce.com,其中 xx99 可以采用大约 100 种不同的
当我在服务器中运行 java 代码时,它会显示以下异常: java.security.AccessControlException: 访问被拒绝 ("java.net.SocketPermission
我有 jApplet,我想将缓冲区发送到服务器并在其上转储,但为什么 AccessControlException 我无法理解。 java.security.AccessControlExcepti
我有一个 RMI 应用程序,我正在努力使策略文件正确。当我将权限设置为: grant codeBase "file:MyJar.jar" { permission java.security.
这个问题已经让我挠头好几天了。对于特定网络上的站点(恰好是 DDOS 缓解提供商),与其他站点相比,安全管理 checkConnect 调用似乎花费了非常非常长的时间。 这个网络上的站点有什么方法可以
我正在开发一个需要在服务器上保存文本文件的小程序。在解决这个问题一段时间后,我在网上偶然发现了 Lynlin.class,它可以使用 ftp 连接发送文件。如果我将以下行添加到我的 C:\Progra
好吧,我有一个小程序,我试图将其嵌入到 HTML 页面中,但它抛出了异常: AccessControlException: access denied (java.net.SocketPermissi
在 Windows 上启动多播 java 套接字时,出现以下错误(防火墙已停用): java.security.AccessControlException:访问被拒绝(java.net.Socket
在远程客户端上下载小程序时,我看到 Sun Java 控制台中显示以下错误消息: java.security.policy: error adding Permission,java.net.Soc
考虑以下代码片段: (在本例中为 OpenJDK 6b24-1.11.5-0ubuntu1~12.10.1,这似乎无关紧要,因为 Oracle 和 OpenJDK 的所有 JVM 6 和 7 都具有相
这个问题在这里已经有了答案: New java.security.AccessControlException in Java 8 (3 个回答) 7年前关闭。 我在一个简单的 HTML 页面上插入了
java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "c
当我尝试时出现异常 java.security.AccessControlException: access denied (java.net.SocketPermission www.somepag
将 Eclipse Kepler (Windows 7) 用于在 localhost 端口 80 上打开 ServerSocket 的项目。 我使用的安全管理器的策略文件位于: C:\Users\Jo
我们不知道为什么我的客户端在 Safari 中遇到 Java 安全异常。谁能帮忙? 异常在 Windows 上的 Safari 中可靠地发生。这涉及一个Java 小程序。 Windows Vista
我正在从 CF 调用 jar 文件。在CF内部我已经成功创建了一个java类对象。当我当时要调用我的函数时,它会生成以下错误: java.security.AccessControlException
我正在尝试使用小程序读取远程 pdf 文件。当我只从 IDE 运行小程序时它工作正常,但当我将它嵌入到 html 的对象标记中时它会抛出 SocketPermission 异常...以下是访问小程序的
我是一名优秀的程序员,十分优秀!