Javaアプレットを使用してローカルディスク上のファイルを操作するWebアプリがあります。かなり長い間開発しており、アプレットが現代のOSとブラウザと最新のJavaバージョンと新しいセキュリティ制限。
昨日Appleは新しいMac OS 10.9 Mavericksを新しいSafariブラウザ(7.0)で展開しました。Safari7を見つけるためにSafari 7/Mac OS X 10.9でWebアプリをテストしました(おそらく?) 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)上の最新のMac用Firefox 24でローカルファイルにアクセスできます。 Safari 6およびMac OS X 10.8.5でも同様です。さまざまな構成のLinuxおよびWindowsマシンは言うまでもありません。ローカルファイルへのアクセスに問題はありません。
上記のすべてを持っているので、Safari 7固有の問題に遭遇したと結論付けなければなりません。
この問題に関するアイデアはありますか?どんな考えでも大歓迎です。
乾杯、ユリー
編集(回答):Safari 7に新しいセキュリティ設定があります:セーフ/アンセーフモード(Javaプラグインのみ)用です。許可することができますJava個々のWebサイトまたはすべてのサイトのいずれかに対して安全でないモードで動作するプラグイン。安全でないモードでは、アプレットはローカルファイルシステムへの無制限のアクセスを持ちます。
このセキュリティ設定は、Java独自のセキュリティ設定(制限付き/無制限のアクセス)の上で機能するようです。
この設定は、Safariの設定/ [セキュリティ]タブ/インターネットプラグインから利用できます:Webサイトの設定を管理します(そしてJavaプラグイン)を選択します)。
したがって、元の質問にすでに答えたら、言い換えると、ユーザーにこのセキュリティ設定を設定することなく、特定のWebサイト/ URLに対してセーフモードを設定したり、セーフモードをオーバーライドしたりすることは可能ですか?多分Apple開発者証明書が役立つでしょうか?
再度、感謝します!
別のJava今日のアプリで同様の問題が発生しました。このダイアログの[以下のアプリを許可...]リストにアプリを追加する必要があると思います(System Prefs -> Security & Privacy -> Accessibility
):