2011-03-16 7 views
0

私のアプレットで問題が発生しています。それは、URLを取ってイメージを構築するためにそこにHTMLを解析することになっています。私は私のEclipseデバッガで動作するようになった。しかし、Webブラウザで使用しようとすると、AccessControlExceptionが発生します。私はjEditorPane.setPage(url)メソッドを使用しています。現在、アプレットとURLの両方がローカルホスト上でホストされており、アプレットに自己署名しました。JavaセキュリティAccessControlException(アプレット内)

java.lang.RuntimeException: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:80 connect,resolve) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source) 
    at java.net.HttpURLConnection.getResponseCode(Unknown Source) 
    at javax.swing.JEditorPane.getStream(Unknown Source) 
    at javax.swing.JEditorPane.setPage(Unknown Source) 
    at javax.swing.JEditorPane.setPage(Unknown Source) 
    at com.mindbody.printer.PrinterApplet.print(PrinterApplet.java:24) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.JSInvoke.invoke(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source) 
    at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source) 
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

答えて

0

未署名のアプレットは、そのホストからの接続のみが許可されています。署名付きアプレットの場合でも、信頼性の低いコード(ここではjavascriptコードなど)から呼び出されたメソッドでは、このコードの権限(またはより正確には、すべての権限の共通部分)のみが保持されます。

あなたのアプレットに権利があるすべてのことを行うには、権利が必要なコードをAccessController.doPrivileged(...)で囲みます。 (しかし、外部から悪質な議論が与えられた場合、これが危険なことをすることができないことを確認してください。)

+0

素晴らしい、ありがとう。 – Acquire

関連する問題