2012-04-10 11 views
0

すべての権利は、私は、私はHTMLページに埋め込むしようとしているアプレットを持って、それは投げ:JavaアプレットAccessControlException:アクセスが拒否されました(SocketPermission) - 修正プログラムはどこに置かれますか?

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

これで結構です。私が知りたいのは何

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

それとも

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

はこれです:私はこのための修正がいずれかであることを知っている私は必要なのですこれら二つのどちら、どこ私のコードで私が入れなければなりませんこの?

答えて

3

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

+1

* "同じホストに" *プロキシを使用して、「外国人」のサイトからデータを取得することもできます。 –

1

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

+0

@downvoter친절して説明する – EJP

0

EJPが述べたように、信頼を得るにはコードにデジタル署名する必要があります。詳細は、Signing and Verifying JAR Filesを参照してください。

インターネットからのアプレットのエンドユーザマシンにポリシーファイルを展開することは実用的ではありません。あなたが管理しているすべてのマシンのネットワークについて言えば、問題は次のようになります。なぜJWSアプリケーションを使用するだけではないのですか? JWSアプリ。デジタル署名(またはポリシーファイルを使用)する必要がありますが、&のデプロイが容易になります。

「信頼を得る」は、コードの変更を必要とするものではありません。代わりに、コードはあなたが署名し、プロンプトが表示されたらエンドユーザーが信頼する必要があります。心に浮かんでいる唯一の「つかまえ」は、JSを使ってアプレットメソッドを呼び出すと、コードを微調整しない限り信頼できないものになるということです。

関連する問題