Applet数字签名,授予访问本地资源

2024-01-19 10:48

本文主要是介绍Applet数字签名,授予访问本地资源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

步骤一:(打包class文件)



  在命令行中执行以下的语句:jar -cvf MyApplet.jar class





步骤二:(在网页中嵌入Applet)



  这个网页的名字叫做FileReaderApplet.html,下面是嵌入Applet部分的写法:

<APPLET

CODEBASE = "."

CODE = "jcomponent.FileReaderApplet.class"

ARCHIVE ="MyClass.jar"

NAME = "TestApplet"

WIDTH = 400

HEIGHT = 300

HSPACE = 0

VSPACE = 0

ALIGN = middle



</APPLET>

  完成这个步骤后,这个Applet已经可以显示了。但是还不能读写本地的文件系统。





  步骤三:(生成证书及签名)



  请在命令行环境下执行以下的命令:

   1、keytool -genkey -keystore pepper.store -alias pepper

  这个命令用来产生一个密匙库,执行完毕后应该在c:/admin中产生一个pepper.store的文件,这里的pepper是我自己的名字,你可以对它进行修改。另外在执行命令的时候还有提示你输入密匙库的密码,这里你一定要记住,否则后面要用的时候无法输入。

  2、keytool -export -keystore pepper.store -alias pepper -file pepper.cert

  这个命令用来产生签名时所要用的证书,同样这里的pepper也可以换成你自己需要的名字。这个命令执行完后在c:/admin中产生一个pepper.cert的文件。

  4、 jarsigner -keystore pepper.store MyApplet.jar pepper

  这个命令用上面产生的证书将我们的jar文件进行了签名。





  步骤四:(修改文件)



  1、 在c:/admin中产生一个名为applet.policy的文件,其内容如下:

keystore "file:c: /admin/pepper.store", "JKS";

grant signedBy "pepper"

{ permission java.io.FilePermission "<<ALL FILES>>", "read";

};

  这个文件让由pepper签名的Applet拥有本地所有文件的读权限。

  2、 修改${java.home}/jre/lib/security目录下的java.security,找到下面这两行:

policy.url.1=file:${java.home}/lib/security/java.policy

policy.url.2=file:${user.home}/.java.policy

  在下面添写第三行

policy.url.3=file:c: /admin/applet.policy

  完成这个修改后我们在前面创建的applet.policy文件才有效。





  步骤五:(转换html文件)



  运行前面提到的HTMLConvert工具,将原有的FileReaderApplet.html转化成下面的形式:

<!--"CONVERTED_APPLET"-->

<!-- CONVERTER VERSION 1.3 -->

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

WIDTH = 400 HEIGHT = 300 NAME = "TestApplet" ALIGN = middle VSPACE = 0 HSPACE = 0 codebase=" http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">

<PARAM NAME = CODE VALUE = "jcomponent.FileReaderApplet.class" >

<PARAM NAME = CODEBASE VALUE = "." >

<PARAM NAME = ARCHIVE VALUE = "MyApplet.jar" >

<PARAM NAME = NAME VALUE = "TestApplet" >

<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">

<PARAM NAME="scriptable" VALUE="false">

<COMMENT>

<EMBED type="application/x-java-applet;version=1.3" CODE = "jcomponent.FileReaderApplet.class" CODEBASE = "." ARCHIVE = "MyApplet.jar" NAME = "TestApplet" WIDTH = 400 HEIGHT = 300 ALIGN = middle VSPACE = 0 HSPACE = 0 scriptable=false pluginspage=" http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT>

</NOEMBED></EMBED>

</OBJECT>

<!--

<APPLET CODE = "jcomponent.FileReaderApplet.class" CODEBASE = "." ARCHIVE = "MyApplet.jar" WIDTH = 400 HEIGHT = 300 NAME = "TestApplet" ALIGN = middle VSPACE = 0 HSPACE = 0>

</APPLET>

-->

<!--"END_CONVERTED_APPLET"-->

大家不要看到这里的写法很复杂,但是这些都是由HTMLConvert工具自动实现的。这个工具有命令行和图形界面两种运行方式。

  好了,现在这个Applet可以运行读写文件的功能了。如果你要考虑在Internet上实现这个Applet,那么你也不需要在所有的客户端均做上面的步骤,你只需要在你的服务器上创建一个目录,例如c:/admin,将这个目录映射为 www.testApplet.com/admin。这里的 www.testApplet.com是一个假定的网址,将pepper.cert、pepper.store、FileReaderApplet.html、MyApplet.jar以及applet.policy放在这个目录中,然后修改applet.policy文件如下:

keystore "http:// www.testApplet.com/admin/pepper.store", "JKS";

grant signedBy "pepper"

{ permission java.io.FilePermission "<<ALL FILES>>", "read";

};

  3、 而每个客户端仅仅需要修改一下它们的${java.home}/jre/lib/security目录下的java.security文件如下:

policy.url.1=file:${java.home}/lib/security/java.policy

policy.url.2=file:${user.home}/.java.policy

policy.url.3= http:// www.testApplet.com/admin/applet.policy

  当然每个客户端还是需要安装JRE的,不过现在的浏览器安装时都已经自动安装了。
 

这篇关于Applet数字签名,授予访问本地资源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/622183

相关文章

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

Nacos客户端本地缓存和故障转移方式

《Nacos客户端本地缓存和故障转移方式》Nacos客户端在从Server获得服务时,若出现故障,会通过ServiceInfoHolder和FailoverReactor进行故障转移,ServiceI... 目录1. ServiceInfoHolder本地缓存目录2. FailoverReactorinit

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚: