在Web模式下,有什么办法能够在不修改客户端jre(如java.security、java.policy)的情况下,让Applet能够访问客户端本地资源(如读写文件等)。
现在找到的方法都是将applet打包后用jarsigner对jar进行签名,还要再修改客户端jre的策略文件,这种方法太不实用了。
详细步骤和例子,以及截图已经做好,呵呵,大家过来看看,批评指正 ^ ^
Thanks!
http://skzr-org.iteye.com/blog/620183
Anddy:"applet的安全策略就包括不能对本地文件的读和写。行不通!
http://blog.csdn.net/fhx007/archive/2008/11/27/3389585.aspx"
其实只要是数字签名的应该都可以做到!
因为你选择信任此签名的软件,所以实际上就是授权此软件可以进行一些危险的操作
和activex的那个允许activex运行一样的道理!
jre的策略文件不需要更改的
如果真的签名了,客户端加载运行jar时会出现询问是否信任此签名的提示的!
问题在于,你如果签名了整个applet jar那么每一次重新发布都需要重新签名,比较繁琐,好的办法是,把需要提升权限的打为一个jar,一般这个jar不会经常更改的,签名此jar就可以了,其他的(如界面UI)的jar就算修改了也不需要重新签名的
要点:需要提升权限的类一定要放入一个jar包,签名一次即可
注意执行需要权限的代码需要一个特殊的方法执行,
AccessController.doPrivileged(...)如果信任此签名,将可以执行此代码
为什么要修改客服的jre的策略文件
http://www.webdn.com/web_file/program/jsp/060208032/ 这里没修改策略文件呀。
确实...再帮你看看~~
applet的安全策略就包括不能对本地文件的读和写。行不通!
http://blog.csdn.net/fhx007/archive/2008/11/27/3389585.aspx
==,我晕好久没写applet了