首页 文章

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

提问于
浏览
49

我们有一个Web应用程序,它使用Java applet来操作本地磁盘上的文件 . 我们开发它已经有一段时间了,我们已经知道所有类型的applet可能与现代操作系统和浏览器以及最新的Java版本和新的安全限制有关 .

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

尽管applet(使用有效的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)

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

applet可以在同一台机器上使用最新的Firefox 24 for Mac访问本地文件(Java 7u45,Mac OS X 10.9) . 与Safari 6和Mac OS X 10.8.5相同,更不用说各种配置的Linux和Windows机器:访问本地文件没有问题 .

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

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

干杯,尤里

EDIT (Answer): In Safari 7 there is a new security setting: Safe/Unsafe mode (I think it's for Java plug-in only). You can allow Java plugin to work in Unsafe mode either for individual websites or for all sites. In Unsafe mode the applets will have unrestricted access to local file system.

看来这个安全设置在Java自己的安全设置(受限制/不受限制的访问)之上工作 .

此设置可通过Safari首选项/安全选项卡/ Internet插件获得:管理网站设置(然后选择Java插件) .

所以,一旦我已经回答了我自己的原始问题,我宁愿将其改为:是否可以设置不安全模式或覆盖特定网站/ URL的安全模式而无需要求用户设置此安全首选项?也许Apple开发者证书之类的东西会有帮助吗

再次感谢!

2 回答

  • 4

    我今天遇到了与另一个Java应用程序类似的问题 . 我想您可能需要将您的应用添加到此对话框中的"Allow the apps below ..."列表中( System Prefs -> Security & Privacy -> Accessibility ):

    enter image description here

  • 3

    对于Safari 11:

    • 转到Safari Preferences-> Websites-> Plug-ins,然后选择Java

    • 在右侧你可以看到'Allow websites to use this plug-in with settings below'的列表

    • 现在选择网站

    • 按住Option按钮,然后单击三个选项(Ask,Off,On),您将看到另外的选项'Run in safe mode' - 取消选中此选项 .

    enter image description here

相关问题