`
dodoflying
  • 浏览: 177041 次
社区版块
存档分类
最新评论

RMI的安全问题

阅读更多
今天在测试RMI的时候,运行server端出现问题,命令如下:
D:\rmi>java -Djava.security.policy=policy.txt RMIServer
其中policy.txt是策略文件
--------------------------------------------------------------------------------------------------------------------
Exception in thread "RMI TCP Connection(2)-192.168.12.155" java.security.AccessC
ontrolException: access denied (java.net.SocketPermission 192.168.12.155:3576 ac
cept,resolve)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkAccept(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.checkAcceptPermi
ssion(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.checkAcceptPermission(Unknown Sour
ce)
        at sun.rmi.transport.Transport$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Sour
ce)
        at java.lang.Thread.run(Unknown Source)

-------------------------------------------------------------------------------------------------------------------
此时,policy.txt文件如下:
---------------------------------------------------------------------------------------
grant 
  { 
    permission   java.net.SocketPermission   "*:1099","accept,connect,listen"; 
  };
--------------------------------------------------------------------------------------
修改为
--------------------------------------------------------------------------------------
grant 
  { 
    permission   java.net.SocketPermission   "*:*","accept,connect,  listen"; 
  };
-------------------------------------------------------------------------------------
后,运行正常。

问题二:直接运行命令,不加策略文件,会出错
D:\rmi>java RMIServer
错误如下:
--------------------------------------------------------------------------------------
Exception in thread "main" java.security.AccessControlException: access denied (
java.net.SocketPermission 192.168.12.155:1099 connect,resolve)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkConnect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown S
ource)
        at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown S
ource)
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
        at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
        at sun.rmi.server.UnicastRef.newCall(Unknown Source)
        at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
        at java.rmi.Naming.rebind(Unknown Source)
        at RMIServer.<init>(RMIServer.java:75)
        at RMIServer.main(RMIServer.java:37)
---------------------------------------------------------------------------------------------
运行java -Djava.security.policy=policy.txt RMIServer后正常。


这一切是为什么呢?

分享到:
评论

相关推荐

    RMI+EHCACHE Demo

    RMI+EHCACHE可以做基础学习理解

    javaRMI完整版.pdf

    3. 安全:RMI 使用 Java 内置的安全机制保证下载执行程序时用户系统的安全。 4. 便于编写和使用:RMI 使得 Java 远程服务程序和访问这些服务程序的 Java 客户程序的编写工作变得轻松、简单。 5. 可连接现有 / 原有的...

    JAVA RMI 传输 SSL加密

    我最近在研究JMX,底层通过RMI传输,为了数据安全,需要SSL加密.我成功试验了本地及远程的传输方法.希望对大家有些帮助.

    JAVA RMI 调查报告

    由于Java具有跨平台、代码可移植性、安全高效等广泛而强大的功能,因而在开发网络分布式应用的时候,可以用它自身的机制实现分布式计算,一种基于Java的远程方法调用(RMI)为我们开发企业分布式应用提供了行之有效的...

    论文研究-基于RMI的审计记录系统的设计与实现 .pdf

    基于RMI的审计记录系统的设计与实现,熊飞,龙毅宏,随着Internet的迅速发展,企业对网络信息系统依赖程度越来越高,同时信息安全系统也存在着各种安全问题,其中内部人员的违规操作导�

    RMI 的全套使用

    // 暂时不要安全设置, } catch (java.rmi.RMISecurityException exc) { throw exc; } }*/ } /* * set the remote method */ public void setDataAllFace(AllFace dataAllFace) { this....

    Java安全漫谈 - 04.RMI篇(1)1

    Java安全漫谈 - 04.RMI篇(1)1

    RMI-JAVA-:远程方法调用的加密安全性

    RMI-JAVA- 远程方法调用的加密安全性

    JavaRMI模拟时钟

    这是用Java RMI机制实现的一个模拟时钟,服务器端设置Timer,客户端只是被动接受数据进行显示.RMI的安全策略机制在代码中实现。

    Java安全漫谈 - 05.RMI篇(2)1

    原因是,通常我们在新建一个RMI Registry的时候,都会直接绑定一个对象在上面,也就是说我们示例代码中的Server其实包含了Registry和Serve

    JavaRMI.pdf

    JavaRMI.pdf

    JAVA-RMI.rar_rmi _分布式计算

    由于Java具有跨平台、代码可移植性、安全高效等广泛而强大的功能,因而在开发网络分布式应用的时候,可以用它自身的机制实现分布式计算,一种基于Java的远程方法调用(RMI)为我们开发企业分布式应用提供了行之有效的...

    java RMI入门例子

    通过这个例子可以大概了解RMI的很多机制

    RMI学习资料.doc

    RMI学习资料.doc

    rmi-based distributed timer service

    基于RMI的分布式时间服务器,这是一个Eclipse下的工程文件,由于加了安全策略文件,另外给出了运行程序的批处理文件,在\bin目录下。

    wlfullclient.jar 客户端开发包 rmi\jms\ejb3 网络安全人必备

    weblogic下开发客户端需要的全部jar包的集合包括,其中有rmi,jms,ejb3等重要的库,欢迎下载

    Java安全漫谈 - 06.RMI篇(3)1

    此时我们还得借助Java序列化的协议文档:https://docs.oracle.com/javase/8/docs/platform/serializatio

    java教学课件:10Java--RMI.ppt

    java教学课件:10Java--RMI.ppt

Global site tag (gtag.js) - Google Analytics