java - 在 NetBeans 中运行客户端项目时出现访问被拒绝 ("java.net.SocketPermission"错误

标签 java rmi securitymanager

java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")

我的服务器端工作正常,服务器上没有错误。当我运行客户端代码时,我收到此访问被拒绝(“java.net.SocketPermission”“127.0.0.1:1099”“connect,resolve”)错误。

请任何专家帮助我:(

这是我的客户端代码

/**
 *
 * @author saqibhussain
 */
public class ChatClient extends UnicastRemoteObject implements ChatClientIF, Runnable {
public ChatClient() throws RemoteException {
}
private ChatServerIF chat;
private String name = null;

protected ChatClient(String name, ChatServerIF chat) throws RemoteException {        this.name = name;
    this.chat = chat;
    chat.RegisterChatClient(this);
}

public void retrieveMessage(String msg) throws RemoteException {
    System.out.println(msg);
}

public void run() {
    Scanner scaner = new Scanner(System.in);
    String message;
    while (true) {
        try {
            message = scaner.nextLine();
            chat.broadcastMessage(name + " : " + message);
        } catch (RemoteException ex) {
            Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

public static void main(String[] args) throws NotBoundException, MalformedURLException, RemoteException {
        System.setSecurityManager(new RMISecurityManager());

        try {
        String url = "rmi://localhost/RMIChatServer";
        ChatServerIF remoteObject = (ChatServerIF) Naming.lookup(url);
        System.out.println("Got remote object");
        new Thread(new ChatClient(args[0], remoteObject)).start();

        } catch (Exception e) {
        System.out.println(e);
        }
}
}

最佳答案

向您的客户端应用程序添加安全策略。 您可以从此处下载示例策略:http://www.comp.lancs.ac.uk/~weerasin/csc253/tutorials/week8code/client.policy

之后使用以下 vm 参数启动您的客户端

java -Djava.security.policy==client.policy

在生产环境中要小心,因为给定的策略授予以下权限 您的客户端执行的任何操作。

关于java - 在 NetBeans 中运行客户端项目时出现访问被拒绝 ("java.net.SocketPermission"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982947/

相关文章:

java - Java 代码中的 NullPointerException

java - izPack,它可以输出单个可执行jar吗?

java - 在 App Engine 上将实体转换为它的类类型

java - Spring - 通过 RMI 传递监听器

Java RMI 实现其他项目的接口(interface)

java - Java设置创建实例的安全权限

java - 如何使用java调整图像大小而不损失质量?

java - 如何使用 Java RMI 创建多个服务器?

java - 访问 sun.awt 包中的非公共(public)类 [特别是 : FetcherInfo]

Java SecurityManager - 设置自定义策略文件