Java小程序无法在Safari 7下打开文件(Mac OS X 10.9)
我们有一个使用Java小应用程序来处理本地磁盘上的文件的Web应用程序。 我们已经开发了相当长的一段时间,而且我们已经知道所有types的applet都可能具有现代操作系统和浏览器以及最新的Java版本和新的安全限制。
昨天,苹果公司推出了全新的Mac OS 10.9 Mavericks(7.0)。 我在Safari 7 / Mac OS X 10.9下testing了我们的networking应用程序,发现Safari 7(可能?)阻止从Java applet访问本地文件。
尽pipe小应用程序(有效的Thawte证书签名,并满足Java 7u45特有的所有安全性要求)以完全访问本地文件系统的不受限制的模式运行(Java安全提示表示),但试图访问本地文件时,它会捕获fileNotFoundException :
java.io.FileNotFoundException: /Users/yury/Pictures/Paris 2012/L1050258.jpg (Operation not permitted) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at com.trackntag.ava(Unknown Source)
当从applet打开Java文件打开对话框时,它不显示文件,文件夹select器中的文件夹没有任何图标(通常应该有它们)。 当您回溯到根文件夹时,您可以看到顶层文件夹(bin,cores,dev,home等),但无法浏览它们。
该applet可以在同一台机器(Java 7u45,Mac OS X 10.9)上使用最新的Firefox 24 for Mac访问本地文件。 与Safari 6和Mac OS X 10.8.5一样,更不用说在各种configuration下的Linux和Windows机器了:访问本地文件没有问题。
综上所述,我必须得出结论,我们遇到了Safari 7特有的问题。
你对这个问题有什么想法吗? 任何想法,不胜感激。
干杯,尤里
编辑(答案):在Safari 7中有一个新的安全设置:安全/不安全模式(我认为它只适用于Java插件)。 您可以允许Java插件以不安全模式工作,适用于单个网站或所有网站。 在不安全模式下,小程序将不受限制地访问本地文件系统。
看来,这个安全设置在Java自己的安全设置(限制/不受限制的访问)的基础上工作。
此设置可通过Safari偏好设置/安全选项卡/ Internet插件:pipe理网站设置(然后selectJava插件)。
所以一旦我已经回答了我自己的原始问题,我宁愿重新说明:是否可以设置不安全模式或覆盖特定网站/ URL的安全模式,而不要求用户设置此安全偏好? 也许像苹果开发人员证书会帮助吗?
再次感谢!
我今天遇到了另一个Java应用程序的类似问题。 我想您可能需要将您的应用程序添加到此对话框中的“允许以下应用程序…”列表( System Prefs -> Security & Privacy -> Accessibility
):
- NVD3图表无法计算Chrome中的图例文字长度,因为Window.getComputedStyle不能正确返回字体大小
- 使用没有Web应用程序的Amazon Elastic Beanstalk部署.NET Windows服务