다른 웹 사이트의 데이터를 수집하고 처리하기 위해 Java 애플릿을 만들었습니다. 애플릿은 서명되지 않았으므로 보안상의 이유로 다른 사이트에 대한 액세스가 차단됩니다.java.net.SocketPermission - 이상한 행동
그러나 다른 사이트 중 하나 이상이 차단되지 않은 것으로 보입니다. 이 코드 시도 :
package where;
import java.awt.BorderLayout;
import java.awt.Container;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JTextArea;
public class TestPermissions extends JApplet {
JTextArea txt = new JTextArea();
public void openURL(String site) {
txt.append(site+": ");
try {
URL url = new URL(site);
BufferedReader in = new BufferedReader(
new InputStreamReader(
url.openStream()));
txt.append("Succes\n");
} catch (Exception e) {
txt.append("Failed\n");
txt.append(e.getMessage()+"\n");
System.err.println(e.getMessage());
}
}
public void init() {
openURL("http://www.buienradar.nl/");
openURL("http://buienradar.nl/");
openURL("http://www.google.nl/");
openURL("http://whatismyipaddress.com/");
openURL("http://www.google.com/");
openURL("http://www.nrg.eu/");
openURL("http://www.ecn.nl/");
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
cp.add(BorderLayout.CENTER, txt);
}
}
을 그리고 그 결과는 다음과 같습니다
http://www.buienradar.nl/: Failed
access denied (java.net.SocketPermission www.buienradar.nl:80 connect,resolve)
http://buienradar.nl/: Failed
access denied (java.net.SocketPermission buienradar.nl:80 connect,resolve)
http://www.google.nl/: Failed
access denied (java.net.SocketPermission www.google.nl:80 connect,resolve)
http://whatismyipaddress.com/: Succes
http://www.google.com/: Failed
access denied (java.net.SocketPermission www.google.com:80 connect,resolve)
http://www.nrg.eu/: Failed
access denied (java.net.SocketPermission www.nrg.eu:80 connect,resolve)
http://www.ecn.nl/: Failed
access denied (java.net.SocketPermission www.ecn.nl:80 connect,resolve)
나는 repsonses "액세스 거부"이해한다, 그런데 왜 액세스 http://whatismyipaddress.com
내가 대답을 환영나에게 부여 된 힌트 또는 제안을 참조하십시오.
친애하는 Dacwe,
답장을 보내 주셔서 감사합니다.
내 서버의 이름이 whatismyipaddress.com이 아닙니다. 실제로 (또한
http://www.vitanova.co.nr/test/where/TestPermissions.java
가 whatismyipaddress.com로부터 데이터를 취득하여 서버에 다른 애플릿 입력 : http://www.vitanova.co.nr/test/TestPermissions.html
코드에서이다
난 서버에 애플릿을 넣어 PC의 위치를 추정), 해당 위치에 대한 buienradar로부터 기상 데이터를 얻으려고 할 때 애플릿 보안 때문에 후자가 실패합니다.
http://www.vitanova.co.nr/test/where/ReadURL.java
내 서버의 이름이 whatismyipaddress.com이 아닙니다. 애플릿을 서버에 설치했습니다. [link] (http://www.vitanova.co.nr/test/TestPermissions.html) – jacquesb
고마워, 내 질문에 더 많은 정보를 추가했습니다. – jacquesb