请问,如何禁止一个类去调用文件呢?怎么实现 是不是要进行权限控制?在new File("d:\");file.read之类得操作的地方加一个判断,不就完了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请楼主说清楚一下,我不希望他去访问本地文件,我的程序我不调用类似new File("d:\\")指令不就行了吗?同意楼上 类的引数没有file类型不就行了? Agree Schlemiel(维特根斯坦的扇子) , JDK中已经为大家提供了SecurityManager。 SecurityManager我几乎从没用过,还不知道有这功能楼上能不能详细说说 安全管理器是作为Java对象的形式存在的,可以定制,允许建立自己的安全策略。当Java API进行任何可能不安全的操作时,都会向安全管理器请求许可,从而强制执行自定义的安全策略。Java API将调用安全管理器的check方法。(TO 楼主:checkReader()方法决定线程是否允许读取一个特定的文件)Java程序启动的时候,默认是没有安全管理器的,可以通过将 java.lang.SecurityManager 的实例或者其派生类的实例传给 setSecurityManager(),这样就可以安装安全管理器了。安全管理器安装之后,如果一个动作检查禁止,会抛出安全异常。java2中的安全管理器允许用户使用策略文件来定义策略(即Schlemiel(维特根斯坦的扇子)所言policytool(策略工具)所做之事)。OK,再深入的内容就不在这里介绍了,感兴趣的朋友,请自己去查阅相关的资料。BTW,@see java.security package sorry 各位。我解释一下xxisxx(xx):所调用的类为第三方供应,我们无权修改它的代码。kypfos(政治面貌:一世清白) :我怎么不给它这个功能?我用过一个软件它调用我写的类但是我想同过自己得类调用本地文件时发现所有的路径都被转换了(绝对路径前加了一个莫名其妙的字串,这是怎么做到的?),我读不到任何文件。ratinwander(海) ( ) :不是我不调用,我必须调用一个我未知它实现什么功能的类,但我不希望它读取我的本地文件。(出于安全考虑)to xiaohaiz(老土进城,两眼通红) :谢谢,我看看能不能解决我的问题。还希望有不同的见解 你把这个方法定义成private不就行了。 在服务端把RT.jar文件中File class反编译后把该死的METHOD DELETE或做NOTE之等等重编组合,呵呵好像。 TO Shrewdcat(丧邦&灵猫&潇) :为什么叫做以前的沙箱模型呢?现在JAVA就是采用的沙箱安全模型啊。 to bwl314(乐乐) :和private没有关系to all:大家搞错了,不牵扯下载使用问题,就是一个第三方的类你部署到你的应用里去,而你又不希望它读取文件。能不能不牵扯security的概念?我只是想如何在他读取文件时干扰一下,譬如让它取文件时错误定位。指向一个无意义的folder 把外部引用类单独放在一个folder中,不传递给它正确的路径这个外部引用类就不能读取你不想让它读的文件了。 关于Runtime的问题 一个多线程的问题。 怎么把NetBeans的项目导入到ecplise中? 出用JBoss的困惑 awt如何用对话框获取文件夹路经 请问:关于LDAP应用限制 请问信雅达这个公司好不好? 问题一个, Java中怎样调用外部的exe或bat文件,急 还是jar文件的问题 求救! 一个目前还没有人能解决问题!
楼上能不能详细说说
Java API将调用安全管理器的check方法。(TO 楼主:checkReader()方法决定线程是否允许读取一个特定的文件)Java程序启动的时候,默认是没有安全管理器的,可以通过将 java.lang.SecurityManager 的实例或者其派生类的实例传给 setSecurityManager(),这样就可以安装安全管理器了。安全管理器安装之后,如果一个动作检查禁止,会抛出安全异常。java2中的安全管理器允许用户使用策略文件来定义策略(即Schlemiel(维特根斯坦的扇子)所言policytool(策略工具)所做之事)。OK,再深入的内容就不在这里介绍了,感兴趣的朋友,请自己去查阅相关的资料。
BTW,
@see java.security package
xxisxx(xx):所调用的类为第三方供应,我们无权修改它的代码。
kypfos(政治面貌:一世清白) :我怎么不给它这个功能?我用过一个软件它调用我写的类但是我想同过自己得类调用本地文件时发现所有的路径都被转换了(绝对路径前加了一个莫名其妙的字串,这是怎么做到的?),我读不到任何文件。
ratinwander(海) ( ) :不是我不调用,我必须调用一个我未知它实现什么功能的类,但我不希望它读取我的本地文件。(出于安全考虑)
to xiaohaiz(老土进城,两眼通红) :谢谢,我看看能不能解决我的问题。还希望有不同的见解
为什么叫做以前的沙箱模型呢?现在JAVA就是采用的沙箱安全模型啊。
这个外部引用类就不能读取你不想让它读的文件了。