Java 小程序无法在 Safari 7 (Mac OS X 10.9) 下打开文件

我们有一个使用Java小程序操作本地磁盘上的文件的Web应用程序。我们开发了很长一段时间,我们已经知道小程序在现代操作系统和浏览器以及最新的Java版本和新的安全限制中可能存在问题的所有类型。

昨天,苹果推出了新的Mac OS 10.9 Mavericks和新的Safari浏览器(7.0)。我在Safari 7 / Mac OS X 10.9下测试了我们的Web应用程序,只是为了发现Safari 7(可能是?)阻止了从Java小程序访问本地文件。

尽管小程序(使用有效的 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.a.v.a(Unknown Source)

此外,从小程序打开Java文件打开对话框时,它不会显示任何文件,并且文件夹选择器中的文件夹没有任何图标(通常它们应该具有它们)。当您遍历回根文件夹时,您可以看到顶级文件夹(bin、cores、dev、home 等),但无法浏览到它们。

小程序确实可以访问同一台计算机(Java 7u45,Mac OS X 10.9)上最新的Firefox 24 for Mac的本地文件。与Safari 6和Mac OS X 10.8.5相同,更不用说各种配置的Linux和Windows机器了:访问本地文件没有问题。

综上所述,我必须得出结论,我们已经遇到了Safari 7特有的问题。

你对这个问题有什么想法吗?任何想法都非常感谢。

干杯,尤里

编辑(答案):在Safari 7中有一个新的安全设置:安全/不安全模式(我认为它仅适用于Java插件)。您可以允许 Java 插件在不安全模式下为单个网站或所有网站工作。在不安全模式下,小程序将不受限制地访问本地文件系统。

此安全性设置似乎在 Java 自己的安全性设置(受限/无限制访问)之上工作。

此设置可通过 Safari 偏好设置/“安全”选项卡/“互联网插件”:管理网站设置(然后选择“Java 插件”)进行。

因此,一旦我已经回答了我自己的原始问题,我宁愿改写它:是否可以在不要求用户设置此安全首选项的情况下为特定网站/URL设置不安全模式或覆盖安全模式?也许像Apple开发人员证书这样的东西会有所帮助?

再次感谢!


答案 1

我今天在另一个Java应用程序上遇到了类似的问题。我认为您可能需要将应用程序添加到“允许下面的应用程序...”此对话框中的列表 ():System Prefs -> Security & Privacy -> Accessibility

enter image description here


答案 2

对于 Safari 11:

  1. 转到 Safari 首选项>网站>插入,然后选择 Java
  2. 在右侧,您可以看到“允许网站在下面的设置中使用此插件”列表
  3. 现在选择网站
  4. 按住选项按钮,然后单击三个选项(询问,关闭,打开),您将看到其他选项“在安全模式下运行” - 取消选中此选项。

enter image description here


推荐