Applet Signed Throw:java.security.accessControlexception。どうすれば実行できますか?
質問
何時間もの仕事の後(私はJavaプログラマではありません)、私はなんとかリモートサーバーにFTP-Uploadを作成するために、梱包してアプレットの中に入れました。メインファイルは、「Invia.jar」内の「prova.class」です。 「edtftpj.jar」に配置されたサードパートライブラリを使用します。両方のファイルに署名し、次のコードを含むページにそれらを含めました。
index.html
<applet width="300" height="300" classpath="./" code="prova.class" archive="invio.jar,edtftpj.jar"> </applet>
さて、ブラウザを自分のページに向けると、コンソールでこのメッセージを見つけました。
Could not read property 'edtftp.log.level' due to security permissions
Could not read property 'edtftp.log.log4j' due to security permissions
Could not read property 'edtftp.log.log4j' due to security permissions
java.security.AccessControlException: access denied (java.net.SocketPermission www.artkiller-web.com resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getByName(Unknown Source)
at com.enterprisedt.net.ftp.FTPClient.connect(FTPClient.java:966)
at com.enterprisedt.net.ftp.FileTransferClient.connect(FileTransferClient.java:386)
at prova.start(prova.java:44)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
作業方法についての考えはありますか?
よろしくお願いします
Artoale
解決
コードの特権ブロックに接続URLをラップする必要があります。
また、Propertiesファイルから読み取りの問題が発生しているように見えます。クライアントマシンからプロパティファイルを読み取ろうとしている場合、そのコードをコードの特権ブロックにラップする必要がある場合、JARにパッケージ化できます。良い。
アクセスコントローラーを介してURLを取得するための別の回答で使用したコードのブロックを次に示します。
try
{
final String imageURL = "http://www.google.com/intl/en_ALL/images/logo.gif";
URL url = (URL) AccessController.doPrivileged(new PrivilegedAction()
{
public Object run()
{
try
{
return new URL(imageURL);
}
catch (MalformedURLException e)
{
e.printStackTrace();
return null;
}
}
});
if(url == null)
{
// Something is wrong notify the user
}
else
{
// We know the url is good so continue on
img = ImageIO.read(url);
}
}
catch (IOException e)
{
System.out.println(e);
}
所属していません StackOverflow