⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftp6.txt

📁 java实现ftp的访问客户端资源 Java应用程序环境的安全策略
💻 TXT
字号:
访问客户端资源
Java应用程序环境的安全策略,对于不同的代码所拥有的不同资源的许可,它由一个Policy对象来表达。为了让Applet(或者运行在 SecurityManager下的一个应用程序)能够执行受保护的行为,例如读写文件,Applet(或 Java应用程序)必须获得那项操作的许可,安全策略文件就是用来实现这些许可。
Policy对象可能有多个实体,虽然任何时候只能有一个起作用。当前安装的Policy对象,在程序中可以通过调用getPolicy方法得到,也可以通过调用setPolicy方法改变。Policy对象评估整个策略,返回一个适当的Permissions对象,详细说明哪些代码可以访问哪些资源。策略文件可以储存在无格式的ASCII文件或Policy类的二进制文件或数据库中。本文仅讨论无格式的ASCII文件的形式。
在实际使用中,我们可以不需要自己手动去编写那么复杂的java.policy文件,特别是在不使用数字签名时。这时,我们完全可以借鉴JRE提供给我们的现成的 C:\Program Files\Java\jre1.5.0_12\lib\security\java.policy文件,根据我们的需要做相应的修改,本文就针对不使用数字签名情况编写安全策略文件。下面,是一个完整的在Windows NT/XP下使用的java.policy文件。在文件中,分别使用注释的形式说明了每个“permission”记录的用途。当然,不同的程序对资源访问权限的要求可能不一样,可以根据项目需要进行调整与选择。
grant    { 
       //对系统和用户目录“读”的权限
       permission    java.util.PropertyPermission    "user.dir",    "read";   
       permission    java.util.PropertyPermission    "user.home",    "read";   
       permission    java.util.PropertyPermission    "java.home",    "read";   
       permission    java.util.PropertyPermission    "java.class.pat",    "read";   
       permission    java.util.PropertyPermission    "user.name",    "read";   
       //对线程和线程组的操作权限
       permission    java.lang.RuntimePermission    "accessClassInPackage.sun.misc";   
       permission    java.lang.RuntimePermission    "accessClassInPackage.sun.audio";   
       permission    java.lang.RuntimePermission    "modifyThread";   
       permission    java.lang.RuntimePermission    "modifyThreadGroup";   
       permission    java.lang.RuntimePermission    "loadLibrary.*";   
       //读写文件的权限
       permission    java.io.FilePermission    "<<ALL    FILES>>",    "read";   
       permission    java.io.FilePermission    "${user.dir}${/}jmf.log",    "write";   
       permission    java.io.FilePermission    "${user.home}${/}.JMStudioCfg",    "write";   
       permission    java.net.SocketPermissio    "*",    "connect,accept";   
       permission    java.io.FilePermission    "C:\WINNT\TEMP\*",    "write";   
       permission    java.io.FilePermission    "C:\WINNT\TEMP\*",    "delete";   
       permission    java.awt.AWTPermission    "showWindowWithoutWarningBanner";   
       permission    javax.sound.sampled.AudioPermission    "record";   
 
      // //操作Socket端口的各种权限
       permission    java.net.SocketPermission    "-",    "listen";    
       permission    java.net.SocketPermission    "-",    "accept";    
       permission    java.net.SocketPermission    "-",    "connect";    
       permission    java.net.SocketPermission    "-",    "resolve";    
       permission    java.security.AllPermission;    
     };
 
   grant    signedBy    "saili"    { 
       permission    java.net.SocketPermission    "*:1024-65535",    "connect,accept,resolve";    
       permission    java.net.SocketPermission    "*:80",    "connect";    
       permission    java.net.SocketPermission    "-",    "listen,    accept,    connect,    listen,    resolve",    signedBy    "ganja";    
       permission    java.net.SocketPermission    "-",    "accept";    
       permission    java.net.SocketPermission    "-",    "connect";    
       permission    java.net.SocketPermission    "-",    "resolve";    
       permission    java.security.AllPermission;    
     };
笔者在本项目中,为了使用客户端的用户设置更加的方便与简单,将上面的文件采用VB或C#来做成一个小程序来写。然后将JRE及些exe共同打成一个EXE包,当JRE安装完成后,此小程序负责找到JRE在操作系统中的安装路径,并在程序中写出此java.policy文件,覆盖原有的文件。如此一来,用户就只需安装一个EXE文件,从而简化了安装的操作次数。
1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -