0

よし、HTML ページに埋め込もうとしているアプレットを取得したところ、次のメッセージがスローされました。

AccessControlException: access denied (java.net.SocketPermission someTarget connect, resolve)

これで問題ありません。これに対する修正は次のいずれかであることを知っています。

grant {
   permission java.net.SocketPermission "someTarget", "connect, resolve";
};

または

SocketPermission p1= new SocketPermission("someTarget", "connect,resolve");

私が知りたいのは次のことです: これら 2 つのことのどちらが必要で、これをコードのどこに配置すればよいでしょうか?

4

3 に答える 3

3

アプレットのダウンロード元と同じホストに接続し直すことをお勧めします。これは、Java セキュリティ マネージャーによって許可されています。ホストはまったく同じである必要があります。アクセス許可ポリシー ファイルを編集しても、アプレットを実行するすべてのコンピューターで編集する必要があるため、どこにも行きません。

于 2012-04-10T06:30:02.677 に答える
1

最も簡単な修正は、アプレットに署名することです。

于 2012-04-10T05:22:17.520 に答える
0

EJP が述べたように、信頼を得る方法はコードにデジタル署名することです。詳細については、JAR ファイルの署名と検証を参照してください。

インターネットから来るアプレットのために、ポリシー ファイルをエンド ユーザーのマシンに展開することは実際的ではありません。すべてがあなたによって制御されているマシンのネットワークになると、問題は次のようになります-なぜJWSアプリを使用しないのですか? JWS アプリ。デジタル署名する (またはポリシー ファイルを使用する) 必要がありますが、開発と展開が容易になります。

「信頼を得る」ことは、コードの変更を必要とするものではないことに注意してください。代わりに、コードはあなたによって署名され、プロンプトが表示されたときにエンド ユーザーによって信頼される必要があります。頭に浮かぶ唯一の「落とし穴」は、アプレット メソッドが JS を使用して呼び出された場合、コードを微調整しない限り信頼できないということです。

于 2012-04-10T06:32:45.403 に答える