- 浏览: 1014349 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
一、压缩你的class类文件为jar包
1.假设你的需要压缩的类文件存在的包为:cn.mbq.test1和cn.mbq.test2
2.进入你的classes目录(这里是在MyEclipse平台里建一个web项目,类编译后的文件是存放在classes文件夹里的),在DOS窗口中执行命令:jar cf mytest.jar cn.mbq.test1 cn.mbq.test2
这一步其实可以使用MyEclipse来打成jar包,只选择需要的那些类就可以了。
3.执行命令后你会在当前目录中找到mytest.jar文件,这个就是刚才生成的档案文件。你可以修改它的后缀为rar,然后使用winrar压缩程序打开它查看看是否正确。
(说明:正确的方法应该是 jar cf mytest.jar cn/mbq/test1 cn/mbq/test2 )
二、使用keytool工具生成密匙库
1.keytool工具位于${java_home}/bin目录下;
2.在DOS窗口中执行命令:keytool -genkey -keystore mytest.store -alias mbq
注意:mytest.store 是你的密匙库的名称,可以随意修改,后缀请不要修改!
如果需要可以添加参数DOS命令
keytool -genkey -keystore mytest.store -alias mbq -validity 3650
-validity 3650 表示的是有效期是3650天,默认情况是六个月有效期。
mbq 为别名,这个也可以改成自己的名称
3.执行上述命令后,DOS窗口中会提示你输入keystore的密码、你的姓名、组织单位等等信息。这里要注意的是输入密码请记住,后面要用到的。在最后,我们输入y确认信息。然后再直接回车设置mbq的主密码和store密码一致即可!
三、使用keytool工具导出签名时用到的证书
1.在DOS窗口中执行命令:keytool -export -keystore mytest.store -alias mbq -file mbq.cert
注意:mytest.store 就是第二步生成的密匙库名称
mbq 也是在第二步中我们指定的别名
mbq.cert 为我们生成的证书的名称,可以自己修改名称,注意后缀不要改
2.命令执行成功,我们会在当前目录下找到一个mbq.cert文件,这个就是我们刚才生成的证书。
四、使用jarsigner工具签名jar压缩文档
1.jarsigner工具位于${java_home}/bin目录下;
2.在当前DOS窗口中执行命令:jarsigner -keystore mytest.store mytest.jar mbq
注意:mytest.store 就是我们在第二步中生成的密匙库名称
mytest.jar 就是我们这第一步压缩的jar文档
mbq 是提供者的名称,我们这里设置为我们的别名
修改客户端的程序是需要重新打包和签名。
五、创建mytest.policy文件
1.在当前目录下创建一个mytest.policy文件,其内容如下:
keystore"file:mytest.store","JKS";
grantsignedBy"mbq"
{
permission java.io.FilePermission"<<ALLFILES>>","read";
};
2.这个文件的意思就是说让所有由mbq签名的applet都可以对本地的所有文件进行读操作。
六、归档文件
通过上述的五个操作后,我们会在当前目录中找到如下几个文件:mytest.jar-签名后的jar文档、mytest.store-密匙库、 mbq.cert-证书、mytest.policy-访问策略文件。如果没有这些文件,那么你的applet数字签名过程就没有正确的完成,请检查上述的操作。以后,如果对打包的java文件做了修改,那么就需要重新签名一次才可以!
七、在网页中运行applet
1.假设你的applet中的主启动类为:cn.test.TestApplet.class;整个前面生成的档案文件、证书啊存储在目录:d:\test\myapplet下;
2.建立一applet_test.html文件存放在任何目录下都可以,然后内容如下:
注意:其中的CODEBASE就是你的类的基础目录,CODE也就是你的APPLET的启动主类,ARCHIVE也就是签名后的JAR文档。
2.然后在IE中打开该html文件,那么会看到IE提示你是否信任该插件,也就是说我们的证书起作用了,然后确定运行后,就可以在页面上看到applet的运行效果了。
但是由于SUN和MS的问题,目前IE并不支持最新的JRE,而是使用MS自己开发的JRE,所以这个也是影响APPLET发展壮大的一个原因。而且正是由于这个原因,SUN的java-plugin技术才会出现。使用SUN的java-plugin技术我们就可以在applet中使用最新的JAVA类库了。由于IE在遇到APPLET标签的时候会调用自己的JRE,但是如果客户机器上安装的JRE不是我们想要的版本,那么就会出错了。所谓java- plugin技术就是利用IE的插件机制来制定我们想要的JRE,我们可以在IE中使用OBJECT标签来调用APPLET,这样就不会引用MS的JRE 了,从而达到我们想要的效果,而且java-plugin技术不仅仅支持IE,还支持Navigator等浏览器。不过我们需要编写比较复杂的HTML代码了,但是这一且SUN已经帮我们做到了,呵呵,在JDK1.4或更高的版本中SUN提供了一个HtmlConverter.exe工具来帮助将包含 applet标签的html转换成包含OBJECT和EMBED标签的html代码,该工具位于${java_home}/bin目录下,对于1.4以前的版本该工具则是单独提供的,不过现在几乎都是1.4或1.5甚至更高版本的JDK了吧,呵呵。
该工具很简单,是图形化的工具,我们直接运行即可。比如我将上面的包含applet的html转换后(比如我选择只支持IE的),其代码变成了如下:
注意其中的OBJECT标签,可以看到APPLET标签已经被注释掉了。其中PARAM NAME=NAME这一行中的myapp就是我们applet应用程序的名称,在IE提示的确认运行中显示的就是这个名称了,我们可以改为自己的公司或组织的名称。然后提示的提供者也就是我们在签名时用到的名称了。
另外,还要特别注意的就是这个包含OBJECT标签的html页面必须和你的mytest.jar压缩文档放在同一个目录下,这样才可以正确的加载,否则会一直报ClassNotFound的异常的,即使我们在OBJECT标签中指定了CODEBASE也不行,这个是我在测试的时候遇到的问题!
八、在Internet上应用签名的applet
如果要把applet部署在网络上,那么最好是采用OBJECT标签的形式,同时也要兼顾采用EMBED标签来支持诸如FF等浏览器。我们把已签名了的 mytest.jar和我们的网页放在同一个目录下,至于其他的如mytest.store和mbq.cert可以不用放在一起,至少我在测试的过程中没有放到一起也不会出错,而且在不同的机器上运行的也非常好,可以读取客户端机器的资源!另外,也发现mytest.policy其实也没什么用处,因为这是参考网络上的,而且他们的版本都是1.3左右,所以估计是版本低的缘故吧!
到此,我们就已经完成了applet的签名到部署,以及到实际的网络应用中了。这样我们使用applet来开发控件时就不会因为无法读取客户端资源而放弃了,呵呵~~
说明:根据实际应用,其实最 有用的就是将程序打成jar包,并对jar包进行数字签名。
发表评论
-
提取html内容放入xml文件时空格问题
2011-05-24 17:09 2673由于项目的需要,将网站上的信息抓取下来,提取出想要的信息,然后 ... -
简述URI和URL区别(转)
2011-04-20 16:23 1432URL:(Uniform Resoure Locato ... -
jsp页面乱码解决方案及编码设置问题(转)
2011-03-27 15:46 1846经常遇到关于JSP页面乱码的问题,在网上也查了相关的帖子,故在 ... -
使用JSTL标签异常
2011-01-02 09:48 1856我使用JSTL标签,如下所示: <c:when ... -
HSQL入门及使用指南 (转)
2010-12-27 22:29 2201HSQL可以到官方网站 ... -
使用POI读取Word207和Excel2007的例子 (转)
2010-12-26 16:19 2628天在写全文检索功能时,POI读取Word2007和Excel2 ... -
SSH session连接关闭问题的解决(转)
2010-12-15 22:12 21632008-07-20 22:25:27,531 INF ... -
svn和myeclipse使用搜狗浏览器代理
2010-12-11 16:42 18211 在svn里的setting功能选项中选择Network,勾 ... -
Kissy Suggest 自动提示例子
2010-12-10 14:45 3843由淘宝团队开发出来的Kissy Suggest 自动提示组件是 ... -
计算机开机启动过程详解(转)
2010-12-10 13:22 14051、http://product.zdnet.com. ... -
更强的自动补全提示:提示补全组件:Kissy Suggest(转)
2010-12-09 16:25 1067去年针对谷歌的搜索提示,发过一篇文章:从谷歌的一个Bug说 ... -
磁盘分区与文件系统(转)
2010-12-09 09:38 2057一个磁盘是分成一个个扇区来存放信息,整个磁盘的第一个扇区是作 ... -
QQ通信原理(转)
2010-12-02 21:52 6668QQ通信原理我研究的是QQ ... -
邮件激活
2010-11-17 09:34 1470今天看了一下公司做的网站,看到有关邮件激活的程序,就做下笔记。 ... -
HttpSessionBindingListener获取在线用户数(转)
2010-11-01 14:59 2377下面为我的测试 ... -
cookie的简单使用
2010-10-29 11:13 1584一、cookie的作用 在 ... -
Cookie工作原理(转)
2010-10-29 09:30 1833Cookies基础 Cookies是 ... -
swfobject的使用
2010-10-26 09:54 32341 swfobject可以将swf文件嵌入到网页内,它是一个j ... -
java获取当前工程名(转)
2010-10-24 09:14 1640String projectname = System.get ... -
利用Java编写简单的WebService实例(转)
2010-10-22 15:30 2748/* * File name: TestHell ...
相关推荐
本篇文章将深入探讨JavaApplet的数字签名方法以及如何使用打包签名工具JavaAutoPlug.exe来实现这一过程。 首先,理解数字签名的概念是必要的。在计算机安全领域,数字签名是对数据的一种加密验证,类似于纸质文档上...
总结一下,Ant打包Applet并添加数字签名涉及到的主要步骤包括:配置Ant的build.xml文件,定义编译和打包的目标,设置JAR的manifest信息,使用`jarsigner`对JAR文件进行签名,并确保所有操作符合Java的安全策略。...
在Applet的打包过程中,一个关键步骤是添加数字签名。数字签名可以验证Applet的来源和完整性,让用户信任并允许它在浏览器中执行。在Ant构建文件中,这通常通过`jarsigner`任务实现。你需要提供私钥和证书链,Ant会...
在Java安全模型中,未经签名的Applet默认只能访问有限的系统资源,而通过数字签名,可以为Applet授予访问本地资源的权限,提高其功能范围。 数字签名的主要目的是确保代码的完整性和来源的可信性。在Applet中实现...
然而,由于安全原因,未经签名的Applet会受到许多安全限制,例如不能访问客户端系统资源。为了克服这些限制,开发者需要对Applet进行签名,以证明其来源可信并获取更多的权限。 签名Java Applet的过程通常涉及以下...
一、Java Applet与数字签名 1. Java Applet:Java Applet是一种可以在Web浏览器中运行的Java小程序。它们通过Java插件(现在已被淘汰)在用户计算机上执行,提供动态交互体验。但是,出于安全考虑,Applet被置于一...
3. **Java Archive (JAR) 文件**:Applet通常被打包成JAR文件,以便在Web服务器上分发。`StartAppletDemo`很可能就是这样一个包含Applet类和相关资源的JAR文件。 4. **Applet生命周期**:Applet有四个主要状态:...
未签名的applet受到安全沙箱的限制,不能访问本地文件系统或网络资源,而签名的applet可以请求更多的权限。 **创建和运行Applet** 1. **编写代码**: 创建一个新的Java类,继承自`Applet`类,并覆盖生命周期方法。...
- **构建与测试**:为了将Applet打包成JAR文件,可以使用如下命令: ``` jar cvf MyApplet.jar jcomponent.FileReaderApplet ``` - **HTML集成**:在HTML页面中嵌入Applet时,需使用`<applet>`标签,并指定JAR...
### 三、为Applet签名 为了确保Applet在客户端运行时的安全性,需要对其使用密钥进行数字签名。这一步骤可以确保Applet的完整性和来源可信度。 #### 1. 打包Applet 首先需要将编译好的Applet类文件打包成jar文件...
详细介绍如何使用JBuilder 2005开发Applet应用,涉及的知识点广泛,包括图形用户界面设计、动画处理、声音播放、事件处理、多线程编程、I/O操作、Applet打包、安全模型、数字签名以及JRE插件制作等。 1. **图形用户...
6. **更新代码签名**:如果Applet需要访问受限资源(如本地文件系统),则需要对Applet进行代码签名,以获得浏览器的信任。 7. **Eclipse配置**:检查Eclipse的运行配置,确保“Applet”选项正确设置,包括主类和...
步骤三:打包,使用命令:jar -cvf asbAttachmentUploadApplet.jar * 生成 asbAttachmentUploadApplet.jar 包; 步骤四:数字验证:jarsigner -keystore yourkey asbAttachmentUploadApplet.jar 对 ...
10. **代码签名**:为了克服Java Applet的安全限制,开发者通常需要对代码进行签名,这样用户在首次运行时会被提示是否信任该应用,从而允许其执行更多功能。 综上所述,这个项目提供了一个基于Java Applet的大文件...
编写好Applet后,需要将其打包成JAR文件,然后在HTML页面中通过`<applet>`标签引用。标签中的`code`属性指定Applet主类,`archive`属性指向包含Applet代码的JAR文件。 总结,Java Applet是Java历史上的一个重要组成...
3. **打包Applet类文件**:使用`jar`命令打包`.class`文件,生成`.jar`文件。例如,执行`jar –cvf xxx.jar xxx.class`。 4. **生成密钥对和别名**:使用`keytool`命令生成密钥对和别名。例如,`keytool –genkey ...
8. **数字签名与部署**:为了克服Applet的安全限制,开发者可能需要对Applet进行数字签名,以便用户在浏览器中信任并运行它。 9. **Java编译与打包**:理解如何将源代码编译为.class文件,并使用JAR工具打包成可...
描述中提到“Applet与Swing编写一个简单的HTML浏览器”,这暗示了开发者使用Java Applet作为基础,结合Swing的组件来创建一个可以在本地运行的简单浏览器。Applet在HTML页面中嵌入,可以接收和发送HTTP请求,从而...
1. **创建签名文件**:使用`jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.jks myapplet.jar mykey`命令对打包后的`.jar`文件进行签名。 2. **验证签名**:使用`jarsigner -verify -...
5. **打包与发布**:介绍如何将Brew Applet打包成可执行文件,并通过BREW分发系统进行发布,包括签名过程和应用商店的上传步骤。 6. **性能优化**:对于资源有限的移动设备,性能优化至关重要。文档可能会涵盖内存...