对RMI的客户端的运行一直很迷惑,其中一个就是安全策略文件的问题,今天看看了如果客户端是Applet的情况,有一篇资料说Applet不需要写System.setSecurityManager(new RMISecurityManager());在服务器端可以不设置,下面是一篇资料上关于服务器端的情况:第一步是安装 RMI 安全性管理器。尽管这不是严格必须的,但它确实允许服务器虚拟机下载类文件。例如,假设客户机调用服务器中的方法,该方法接受对应用程序定义的对象类型(例如 BankAccount)的引用。通过设置安全性管理器,我们允许 RMI 运行时动态地将 BankAccount 类文件复制到服务器,从而简化了服务器上的配置。
让 RMI 动态地下载这些类的弊端是有安全性风险。也就是说,实质上我们是在让服务器执行来自另一台机器的代码。虽然我们希望这些类文件不会危及服务器,但如果希望避免这样的风险,则您的 RMI 服务器不应该安装安全性管理器。然后,您必须确保将所有类文件安装在本地服务器的类路径中。如果客户端是应用程序,在客户端一般要写上System.setSecurityManager(new RMISecurityManager());RMI 运行时会自动将远程对象的存根类文件下载到客户机,但仅当应用程序安装了安全性管理器时才能这样做。如果应用程序使用缺省的安全性管理器,则需要在客户机计算机的类路径预安装存根类文件,否则应用程序将捕获到一个安全性异常。
如果Applet要访问本机资源,则需要数字签名了和安全策略文件了,有篇文章总结的很好,http://java.e800.com.cn/articles/2007/126/1169755326341477575_1.html,还要sun公司的官方网站:http://java.sun.com/docs/books/tutorial/security/tour1/index.html。
如果客户端是应用程序,该怎么办呢,总不能每次在客户端的命令行里输入: > java -Djava.security.policy=policy.txt CalculatorClient 吧,这个做测试还行,在实际应用中该怎么办呢?
进一步学习中。。。。。。
分享到:
相关推荐
通过阅读和分析这些源码,可以深入理解Applet与RMI如何协同工作。 学习这个项目,可以提升对Java Applet和RMI的理解,了解它们如何用于实现安全的跨主机通信。对于希望构建分布式系统或网络应用程序的开发者来说,...
7. **使用 RMI (Remote Method Invocation)**:虽然 RMI 不是为浏览器环境设计的,但在特定情况下,通过加密和隧道技术,可以实现 Applet 与 Servlet 之间的 RMI 通信。 每种通信策略都有其优缺点,开发者应根据...
本文将深入探讨“applet与jsp的交互”这一主题,这对于理解Java Web应用的运作机制非常重要。 首先,Applet是Java的一种早期实现,它允许在Web浏览器中运行Java代码。Applet是嵌入在HTML页面中的小程序,可以通过...
- **Java RMI (Remote Method Invocation)**:Applet与Servlet可以通过RMI进行远程方法调用,实现对象级别的通信。这种方式较为复杂,需要配置RMI注册表,适用于复杂的交互场景。 - **JDBC (Java Database ...
将Applet与RMI结合,可以实现更复杂的网络交互。例如,Applet可以作为用户界面,而RMI则提供后台服务。在这种情况下,Applet可以调用远程对象的方法来获取或更新数据,实现跨网络的交互。这种设计模式在分布式应用中...
Applet与普通的Java应用程序(Application)的主要区别在于执行方式。Application通过命令行直接运行,从main()方法开始,而Applet则需要嵌入在HTML文件中,由浏览器加载并执行。 1. **所有小应用程序的根源** ...
- Applet与Servlet通信时,必须考虑到安全策略。Applet通常运行在沙箱环境中,对系统资源访问有限制。因此,敏感操作如文件读写、网络访问等可能需要用户权限或使用签名的Applet。 5. **HTTP请求和响应**: - ...
标题:“论文研究-JMS与RMI技术在数据库监测系统中应用研究.pdf” 描述:本文主要对比了JMS(Java消息服务)与RMI(远程方法调用)这两种分布式对象通信技术,并探讨了在构建数据库性能监测系统时,如何应用这些...
**Applet与Servlet的通信挑战** 由于浏览器的安全模型,Applet在与Servlet通信时面临一些限制。Applet只能与发布它的服务器进行通信,不能直接访问本地文件系统或执行本地程序,也不能创建或接受非源服务器的socket...
1. **Java Servlets和JSP**:用于处理HTTP请求,生成动态Web内容,与后台数据库交互,以及与客户端的Java Applet或JavaScript进行通信。 2. **Java Applets**:在客户端运行的Java小程序,可以增强用户交互体验,...
在探讨Java小程序与应用服务器进行大量数据传输时,首先需要了解Java小程序(Applet)和应用服务器之间的通信机制。Java Applet是一种可以在客户端浏览器中运行的小型Java应用程序,它能够通过网络与服务器进行交互...
java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供用于颜色空间的类。 java.awt.datatransfer ...
Applet与普通的Java应用程序的主要区别在于,Applet在浏览器环境中运行,受到更严格的沙箱安全限制,不能自由地访问本地资源,如文件系统和网络。而Java应用程序可以在没有浏览器的情况下独立运行,具有更大的权限。...
同时,通过Applet与Servlet之间的通信机制,该设计实现了客户端与服务器端的有效交互。Applet是嵌入在Web页面中的小型Java程序,负责与用户的交互和执行部分计算任务;Servlet则是运行在服务器端的Java组件,用于...
第1章 servlet概述第2章 Java Web服务器第3章 第一个servlet 第4章 servlet链第5章 servlet-side Includes 第6章 会话管理第7章 安全性 第8章 HTML表单第9章 在servlet中使用JDBC 第10章 applet与servlet的通信第11...
- 将应用程序转换为Applet,需要考虑Applet生命周期和与HTML的交互。Applet的结构包括初始化、绘画和销毁等阶段。 4. **创建用户界面**: - Java Swing库提供了创建GUI组件(如按钮、文本框等)的方法。使用Swing...
java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供用于颜色空间的类。 java.awt.datatransfer ...