У меня есть Java-апплет, вставленный на простой HTML-странице, расположенной в http://localhost:8080/index.html:
<applet id="applet" code="SomeCode.class" archive="lib.jar" Width="1" Height="1"></applet>
Java-апплет имеет метод, похожий на приведенный ниже код:
public void PostStuffToServer() {
String server = "http://localhost:8080/PostHandler.ashx";
URL u = new URL(server);
URLConnection con = u.openConnection();
con.setDoOutput(true);
con.getOutputStream().write(stream.toByteArray());
con.connect();
}
Когда я запускаю код апплета из JavaScript следующим образом:
obj = document.getElementById('applet');
obj.getClipboardImageURL();
Я получаю следующую ошибку:
доступ запрещен (java.net.SocketPermission 127.0.0.1:8080 подключиться, разрешить)
Кажется, что Java-код разрешает домен localhost эквивалентному IP-адресу и, следовательно, повышает уровень безопасности междоменной безопасности. Он отлично работает, когда я выполняю тот же код из http://127.0.0.1:8080/index.html. Файл lib.jar подписан.
Во всяком случае, чтобы избежать этого?