JApplet内でのJFileChooserの使用
-
04-07-2019 - |
質問
JApplet
で JFileChooser
を使用して、ユーザーがハードドライブ上のファイルを選択できるようにすることはできますか?または、これはJavaアプレットのセキュリティに違反しますか? (デフォルトのセキュリティ設定が使用されていると想定しています。ユーザーに追加のアクセス許可を付与するように依頼したくありません。)
解決
このスレッドは、アプレットにデジタル署名する必要があることを示します。 JFileChooser
が許可される前。
他のヒント
前述のように、アプレットに署名する必要があります。これにより、「あいまいなセキュリティ警告」が表示されます。ユーザーにアプレットが表示されるとき。ユーザーがこのアプレットの実行を受け入れると、アプレットには完全なアクセス権が与えられ、通常のアプリケーションと同様に機能し、セキュリティに明らかに影響します。作業中のWebアプリケーションに関しても同じジレンマに陥っていますが、展開されるかどうかはまだわかりません。
代わりに、webbrowserに組み込まれているfilebrowserを使用し、小さなファイルで作業している場合は、サーバーからファイルコンテンツをバウンスすることができます。
また、署名付きアプレットに関して行うことができるセキュリティ対策は次のとおりです。
-
アプレットコードの起源の検証。
URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation(); if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false) return false;
-
アプレットの実行元のベースURLの検証。
URL documentUrl = this.getDocumentBase(); if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false) return false;
その場合(デフォルト設定を使用する場合)、あなたは正しい、デフォルトのセキュリティマネージャーはローカルファイルへのアクセスを許可しません。
ユーザーのハードドライブから何かを読み取るには、おそらくPrivilegedActionを使用する必要があります。 @mmyersが言ったように、アプレットにも署名する必要があります。
あなたの答えはイエスです、私は前にこれをやったことがあるので、それができることを知っています。