作者NightPrince (shooting star)
看板java
标题Re: [问题] JApplet
时间Sun Mar 19 23:29:07 2006
※ 引述《[email protected] (foolish)》之铭言:
: ※ 引述《[email protected] (shooting star)》之铭言:
: > 既不久前的RMI问题,随之而来的是 JApplet 问题 囧rz
: > 事情是这样的,我写了一个JApplet的程式,想要嵌在网页上
: > 後来发现会有 access denied 的问题,後来我找到原因是权限的问题
: > 也就是 JApplet预设就有以下的限制:
: > 1. Applet无法对本地电脑做任何的档案存取
: > 2. Applet无法唤起在本地电脑的任何其他程式
: > 3. Applet除了与下载包含Applet之HTML网页的电脑通讯外,不会与其他电脑通讯
: > 那请问我该怎样,才可以突破这个预设的限制呢?
: http://java.sun.com/developer/technicalArticles/Security/Signed/index.html
大感谢!成功了,可以在网页跑 applet 了
顺便说说到底该如何做吧!
诚如我原本说的, applet 有很严格的安全限制,所以预设就会有那三项限制
要突破这个限制的作法流程如下:
1. 将此 applet 打包成 jar 档
2. 使用 keytool 产生 key
3. 使用 jarsigner , sign jar档,这时要用到刚所产生的 key
4. 写一下 html tag 即可
现在详述流程如下:
1. 略 (茶)
2. 指令为:
keytool -genkey [-alias alias-name -keystore keystore-name]
genkey後面那一串不输入没关系,不输入的话 alias-name 预设值就是 mykey
keystore的档名就会是 .keystore
此时会问你六个问题,至於会问什麽问题,我会结合步骤三给范例指令
这样比较容易了解!
3.指令为:
jarsigner -keystore keystore-name -storepass keystore-password
-keypass key-password jar-file alias-name
注意:预设值是这组KEY的有效日期是6个月
4. 比如说我的 applet 是 SampleApplet.class ,包在 test.jar 档里面
<applet code="SampleApplet.class"
archive="test.jar"
width=400 height=400>
</applet>
步骤二跟步骤三的范例指令:
D:\>keytool -genkey
输入 keystore 密码: nightprince
您的名字与姓氏为何?
[Unknown]: NightPrince
您的编制单位名称为何?
[Unknown]: Anonymous
您的组织名称为何?
[Unknown]: Anonymous
您所在的城市或地区名称为何?
[Unknown]: Tainan
您所在的州及省份名称为何?
[Unknown]: Taiwan
该单位的二字国码为何
[Unknown]: Tw
CN=NightPrince, OU=Anonymous, O=Anonymous, L=Taina, ST=Taiwan, C=Tw 正确吗?
[否]: y
输入 <mykey> 的主密码
(RETURN 如果和 keystore 密码相同): nightprince
D:\>jarsigner -keystore D:\songClient.keystore -storepass nightprince
-keypass nightprince D:\songClient.jar mykey
Warning: The signer certificate will expire within six months.
顺便要注意的是,步骤三的指令需要在一行内完成
也就是不要输入换行字元即可
使用者只要连入那个网页都会跳出一个视窗问你要不要信任这个网页内容
OK的话就可以看到 applet 了 [茶]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.116.182.158