Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server)

abc1042

Mitglied
Hallo zusammen,

ich versuche per Applet Daten mit Hilfe einer auf dem Server abgelegtem PHP-Skript mittels InputStream einzulesen. Leider bekomme ich immer Zugriff verweigert zurück. Hier mein Code:

Java:
URL url = new URL("https://meinserver.de/irgendwas.php");

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
InputStream is = url.openStream();

String output= new Scanner(is).useDelimiter("\\Z").next();

Mir ist aufgefallen, dass ich nicht immer diesen Zugriffsfehler bekomme. Wird das Applet auf einer auf dem Server befindlichen HTML-Seite mitgeladen funktioniert es. Will ich jedoch durch eine Aktion im geladenen Zustand Daten, wie oben angegeben, nachladen, bekomme ich den Zugriffsfehler wieder.

Kann man das irgendwie umgehen? Ich will ja nur über eine Schnittstelle Daten einlesen und diese nicht verändern.

Vielen Dank für eure Antworten.

Alex
 

vladimir75

Bekanntes Mitglied
Code:
https:
das bedeutet: SSL-gesicherte Übertragung

Du willst auf eine mit SSL verschlüsselte Seite Zugreifen, vielleicht liegt es daran.

Vladimir
 

abc1042

Mitglied
Kriegst du eine SecurityException ? Hast du das Jar signiert?

Ich erhalte

Java:
java.security.AccessControlException: access denied

Das siginieren will ich wenn möglich umgehen, da dies für mich nicht praktikabel wäre.

Mir ist aufgefallen, dass auf meinem lokalen Testserver das Problem nicht auftritt. Kann es auch an den Sicherheitseinstellungen vom Webserver liegen?

Gehts von einer normalen lokalen swing app aus?

Es ist ein normales Java Applet ohne Swing. In dem Applet lasse ich mir nur eine Grafik erstellen mit Daten von einer PHP-Schnittstelle.
 

faetzminator

Gesperrter Benutzer
Nein, es kann nicht am Webserver liegen. Denn das Jar wird heruntergeladen und läuft auf dem Computer des Clients. Du musst für solche Sachen dein Jar signieren. Man kann natürlich die Datei [c]java.policy[/c] updaten, aber das kannst du logischerweise nur lokal machen ;)
Ah ja, der Grund warum es ging ist IMHO: [c]localhost[/c] hat sicher eine Ausnahme-Permission.
 

abc1042

Mitglied
Am localhost kann es nicht gelegen haben, da ich das PHP-Skript immer mit der Domain oder der IP aufrufe und nie über localhost.

Was mich nur immer wundert, dass es auf meinem Testsystem ohne Probleme läuft, obwohl ich auch da das PHP-Skript mit der IP des Servers aufrufe. Es ist also kein lokaler Zugriff. Dies spricht ja doch eher für eine Einstellungssache des Apache, oder nicht?

Außerdem dachte ich immer nur, dass man eine Signierung dafür benötigt, wenn man auf den Clientrechner mit einem Applet zugreifen will. Ich will aber nur (grob umschrieben) eine Internetseite aufrufen und die daraus erhaltenen Textzeilen weitereverarbeiten.
 

faetzminator

Gesperrter Benutzer
...oder ich vermute, dass die Exception fliegt, wenn der Socket nicht auf den gleichen Host zugreifen will, auf dessen das Applet heruntergeladen wurde.
http://objectmix.com/java/76133-socketpermission-signed-applet.html hat gesagt.:
Applets are not allowed to connect to servers other than the ones they came.
Scheint also so zu sein ;)
 

abc1042

Mitglied
Ich habe jetzt nochmal etwas rumprobiert. Wenn ich das Applet mit Netbeans lokal starte und auf den Webserver zugreife, der nicht bei uns im lokalen Netz liegt, dann wird das Applet geladen und alles funktioniert ohne Probleme. Ich bekomme keine Zugriffsprobleme.

Starte ich das gleiche Applet außerhalb von Netbeans über eine HTML-Datei auf meinen lokalen PC, bekomme ich den Fehler. Was ist in Netbeans anders, so dass es dort funktioniert und als generiertes Applet nicht?

Ich bin da echt ratlos.
 

faetzminator

Gesperrter Benutzer
Hast du schon Mal zu diesem Thema im Internet gesucht? Ich denke nicht, denn da gibts genug Infos... Es sind - wie bereits gesagt - die Sicherheitseinstellungen! Ein Applet im Browser (über das Browser Java Plugin) soll nicht so viele Rechte besitzen, wie wenn ich in meiner Umgebung diese laufen lass. Ansonsten könnte ich dir ein "unsichtbares" Applet unterjubeln und sicher viel Spass haben (wenn ich auf jegliche Hosts zugreifen kann, deine Dateien lesen und schreiben kann etc.).
 

abc1042

Mitglied
Ich werde es gerne mit einem signierten Applet versuchen.

Ich habe da aber nochmal eine Frage zu den eingeschränkten Rechten von Applets: Ich habe es so verstanden, dass diese nur auf die Daten und Ressourcen vom Client eingeschränkt sind. Ich will aber garnicht auf den Clientrechner zugreifen. Ich will auf eine Datei auf meinem Webserver zugreifen, um Daten einzulesen. Diese API ist mit einem Sicherheitsschlüsseln gesichert, so dass dort niemand ohne weiteres rankommt. Irgendwie ist das unlogisch, dass dafür das Applet keine Rechte haben soll. Webstart-Anwendungen und normale Java-Programme haben damit ja auch keine Probleme.

Kann es wirklich nur daran liegen???
 

faetzminator

Gesperrter Benutzer
Ich will auf eine Datei auf meinem Webserver zugreifen, um Daten einzulesen. Diese API ist mit einem Sicherheitsschlüsseln gesichert, so dass dort niemand ohne weiteres rankommt. Irgendwie ist das unlogisch, dass dafür das Applet keine Rechte haben soll.

Wie gesagt, wenn du das Jar von [c]faetzminator.ch[/c] laufen lässt, dann hat es genau die Berechtigung, um Sockets auf [c]faetzminator.ch[/c] (und evtl. auf dessen IP(s) und Subdomains) zuzugreifen. Das klingt aber bei dir nicht so.
 

abc1042

Mitglied
Also, in der
Code:
public void init()
von meinem Applet rufe ich die folgende Funktion auf, die mir dann die Daten holen soll:

Java:
public static String MakeUrlRequest(String URLArgs) {
    String output = null;
        
    try {
        String input;
        URL url;

        url = new URL("http://www.meinserver.de/api.php?" + URLArgs);

        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        InputStream is = url.openStream();

        output = new Scanner(is).useDelimiter("\\Z").next();
    }
    catch(Exception e) {e.printStackTrace();}
        
    return output;
}

Wenn ich dann Daten nachladen will, rufe ich die gleiche Funktion wieder auf und rufe repaint() auf.

Also wenn ich das Applet durch eine HTML-Datei auf dem Server laden lasse wird die Funktion
Code:
public static String MakeUrlRequest(String URLArgs)
erfolgreich ausgeführt. Fordere ich jetzt per Javascript das Applet auf, diese Funktion erneut auszuführen um die Daten neuzuladen bekomme ich den Zugriffsfehler.

Rufe ich das Applet mit einer HTML-Datei auf einem anderen Server auf, erhalte ich sofort den Zugriffsfehler.

Starte ich das Applet aus Netbeans auf meinem lokalen PC, funktioniert alles so wie es laufen soll, obwohl die PHP-Datei auf meinem Webserver liegt.

Wenn das wirklich durch Einschränkungen des Applets hervorgerufen wird, werde ich mir wohl einen anderen Weg einfallen lassen müssen, eventuell einen externen Datenbankzugriff, auf den ich mit dem Applet zugreife oder so...
 

faetzminator

Gesperrter Benutzer
Also wenn ich das Applet durch eine HTML-Datei auf dem Server laden lasse wird die Funktion
Code:
public static String MakeUrlRequest(String URLArgs)
erfolgreich ausgeführt.
Sollte auch so sein.
Fordere ich jetzt per Javascript das Applet auf, diese Funktion erneut auszuführen um die Daten neuzuladen bekomme ich den Zugriffsfehler.
Wie machst du das denn? Hast du uns etwas JS Code? Klingt komisch...
Rufe ich das Applet mit einer HTML-Datei auf einem anderen Server auf, erhalte ich sofort den Zugriffsfehler.
Ebenfall logisch.
Starte ich das Applet aus Netbeans auf meinem lokalen PC, funktioniert alles so wie es laufen soll, obwohl die PHP-Datei auf meinem Webserver liegt.
Auch logisch -> andere Berechtigungen.
 

abc1042

Mitglied
Mit folgenden zwei Zeilen mache ich das in Javascript:

Java:
document.appletName.loadData();
document.appletName.repaint();

in
Code:
loadData()
wird die oben genannte Funktion
Code:
MakeUrlRequest(String URLArgs)
mit den richtige Parametern aufgerufen.
 

abc1042

Mitglied
Nochmal hallo zusammen,

ich habe mir jetzt mal mein Applet signiert. Leider hat es nur einen Fortschritt gebracht: Jetzt kann ich den ersten Aufruf der Schnittstelle auch von einem entfernten Server durchführen. Sobald ich aber durch Javascript dem Applet sagen, dass es sich die Daten nochmal holen soll, bekomme ich wieder den Zugriffsfehler. Also liegt der Fehler nicht an der Signierung. Hat noch einer eine Idee??? Wie gesagt, auf meinem lokalen Testsystem läuft es ohne Probleme, nur auf meinem Webserver, wo ich es jetzt draufpacken will, will es irgendwie nicht...

Schon mal Danke im Voraus.
 

faetzminator

Gesperrter Benutzer
Was für eine Exception wird geschmissen, wenn du das Javascript laufen lässt? Ich dachte die ganze Zeit an eine Java-seitige. Ist aber wohl ehner seitens JS?
 

abc1042

Mitglied
Was für eine Exception wird geschmissen, wenn du das Javascript laufen lässt? Ich dachte die ganze Zeit an eine Java-seitige. Ist aber wohl ehner seitens JS?

Die Exception lautet immer noch:

Java:
java.security.AccessControlException: access denied (java.net.SocketPermission www.meinserver.com:80 connect,resolve)

Das Fehlerkonsole von Javascript gibt keinerlei Fehler aus.

Was für Daten holst du denn mit deiner PHP-Datei?

Ich lass mir nur einen String zurückgeben, denn ich dann in Java zerpflüge. Zum einen baue ich mir aus den Daten dann Polygone im Applet und zum anderen ist es eine Bild-URL, die ich mir durch das Applet anzeigen lasse.
 

L-ectron-X

Gesperrter Benutzer
Ich kann mir vorstellen, dass es die Art und Weise ist, wie du auf deinen Server zugreifst.
Auch wenn du auf den Server zugreifst, von dem das Applet geladen wurde, wäre es klüger sich immer vom Kontext des Applets ausgehend, also mit einer relativen URL durch das Dateisystem auf deinem Server zu bewegen.

Probiere daher mal Code-Stücke wie diese:
Java:
URL url = url = new URL(getCodeBase(), "./api.php?" + urlArgs);
 

abc1042

Mitglied
Ich kann mir vorstellen, dass es die Art und Weise ist, wie du auf deinen Server zugreifst.
Auch wenn du auf den Server zugreifst, von dem das Applet geladen wurde, wäre es klüger sich immer vom Kontext des Applets ausgehend, also mit einer relativen URL durch das Dateisystem auf deinem Server zu bewegen.

Genau das gleiche Ergebnis... Ich bin echt ratlos!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Zugriff auf lokale serielle Schnittstelle via Applet Allgemeine Java-Themen 3
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
J Java Applet Verknüpfungsproblem Allgemeine Java-Themen 6
L Applet Applet zu JavaWebStart migrieren - simples sample geht nicht Allgemeine Java-Themen 2
A Applet Applet debuggen und Logs finden Allgemeine Java-Themen 3
A Plot funktion applet Allgemeine Java-Themen 4
A Applet nullstelle Plot Allgemeine Java-Themen 1
A Applet in HTML einbinden Allgemeine Java-Themen 1
B Altes Applet anpassen Allgemeine Java-Themen 8
W Unterschied Standalone und Applet Allgemeine Java-Themen 1
L WebSign Applet der Deutschen Bank Allgemeine Java-Themen 0
K Applet in JApplet umwandeln Allgemeine Java-Themen 5
V Applet trotz Ausnahme blockiert Allgemeine Java-Themen 0
T Java Applet Berechtigungen Allgemeine Java-Themen 2
T 2D-Grafik Java Applet Rechtecke und Kreise Allgemeine Java-Themen 1
I Java Applet wird immer blockiert Allgemeine Java-Themen 3
S Applet in html laden; InvocationTargetException,.. nur warum ? Allgemeine Java-Themen 0
S Java Applet wird dauerhaft blockiert Allgemeine Java-Themen 1
T Java applet args Allgemeine Java-Themen 5
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
L Java Applet - ClassNotFound online, offline korrekt Allgemeine Java-Themen 13
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
H Problem mit Applet (online / offline) Allgemeine Java-Themen 8
K Applet-Einbindung Allgemeine Java-Themen 11
T Java Applet in IE 8+9 Allgemeine Java-Themen 4
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
X Applet läuft nicht, Applet in Webseite einbinden Allgemeine Java-Themen 4
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
P Applet Applet einbinden Probleme Allgemeine Java-Themen 2
S URL File in Applet Allgemeine Java-Themen 16
S Fehler Applet-HTML Allgemeine Java-Themen 5
C Applet per Greasemonkey aufrufen Allgemeine Java-Themen 9
U Wie kann mit einen Java Applet Dateien erstellen,verschieben und löschen? Allgemeine Java-Themen 9
D JAVA Applet MVC? Allgemeine Java-Themen 2
E Application -> Applet Allgemeine Java-Themen 9
A Applet Mein Applet verursacht Browserabsturz Allgemeine Java-Themen 8
J Erste Schritte Applet allgemeine Funkion Allgemeine Java-Themen 8
T Java Application zu Applet Allgemeine Java-Themen 4
G Input/Output java applet schreibrechte Allgemeine Java-Themen 8
G java applet und com-port Allgemeine Java-Themen 7
A Applet Jar Datei auslesen Allgemeine Java-Themen 3
M Applet aus Eclipse Allgemeine Java-Themen 12
M Applet Oberfläche aktualisieren Allgemeine Java-Themen 5
S Applet maximiert starten Allgemeine Java-Themen 5
A Email-Programm aus Applet öffnen Allgemeine Java-Themen 4
M AccessControlException bei Signiertem Applet Allgemeine Java-Themen 12
J Applet Ausgabe beim Speichern ausblenden Allgemeine Java-Themen 4
schlingel Webstart/Applet Problem - Classloader-Bug Allgemeine Java-Themen 7
W Java Applet läuft langsam Allgemeine Java-Themen 2
J Applet zum .java-Dateien auslesen/erstellen Allgemeine Java-Themen 5
S Timer in Applet? Allgemeine Java-Themen 11
S Applet Einbindung - Firefox kp, IE no way Allgemeine Java-Themen 8
N Gallery Remote Applet Allgemeine Java-Themen 2
F Link in Applet "verstecken" Allgemeine Java-Themen 3
F mit Applet auf .htaccess geschützte Dateien zugreifen Allgemeine Java-Themen 3
S Applet in Java NetBeans Allgemeine Java-Themen 3
E Applet neustarten Allgemeine Java-Themen 2
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
I RMI Signiertes Applet ohne Warnung? Allgemeine Java-Themen 14
S Mediaplayer-Applet Allgemeine Java-Themen 2
D Code wird im Applet nicht ausgeführt. Allgemeine Java-Themen 2
H Applet java.lang.reflect.InvocationTargetException Allgemeine Java-Themen 9
N Protocol Frame/Applet Allgemeine Java-Themen 4
J Aus Applikation ein Applet machen Allgemeine Java-Themen 5
S Directory im Applet auslesen Allgemeine Java-Themen 3
A Textdatei im Applet einlesen Allgemeine Java-Themen 2
S Applet funktioniert online - nur nicht lokal..? Allgemeine Java-Themen 2
N Java Applet im eingeschränkten Benutzeraccount Allgemeine Java-Themen 10
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
L Problem beim animieren von Bildern in Applet Allgemeine Java-Themen 23
L Problem mit Hintergrund bei JAVA Applet Allgemeine Java-Themen 27
T applet und JFrame Allgemeine Java-Themen 12
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
J Ordnerstrukturen mit Applet Allgemeine Java-Themen 14
H importierte Bibliotheken in Applet? Allgemeine Java-Themen 4
lumo Applet exception Allgemeine Java-Themen 6
Developer_X Java Applet - Font aus datei laden Allgemeine Java-Themen 15
W Applet notinited nach Java Versionsupdate Allgemeine Java-Themen 12
M Erkennung von Daten in einem Applet Allgemeine Java-Themen 2
M wieder mal applet probleme Allgemeine Java-Themen 17
0 Sandbox und Applet Kommunikation Allgemeine Java-Themen 9
L Applet Problem - stockende und springende Bilderabfolge Allgemeine Java-Themen 12
ChackZz Applikation zu Applet umbauen Allgemeine Java-Themen 13
V Fehler bei Applet Allgemeine Java-Themen 11
G Frage zu Serverapplikation+Applet Allgemeine Java-Themen 2
MQue aus einem Applet auf Word zugreifen Allgemeine Java-Themen 3
B Java Applet unter Mac wird nicht angezeigt Allgemeine Java-Themen 6
N Applet Probleme Allgemeine Java-Themen 2
G Java Applet für VPN Allgemeine Java-Themen 2
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
S Applet Programmierung in Eclipse Allgemeine Java-Themen 12
M Applet in maximaler Bildschirmgroesse oeffnen? Allgemeine Java-Themen 7
J Applet in JAR packen - was muss in main() stehen? Allgemeine Java-Themen 12
P Applet Funktionalität überwachen Allgemeine Java-Themen 3
hdi Applet, JavaScript, PHP, mySQL -> Was brauch ich? Allgemeine Java-Themen 3
C Externe Bilder in Java-Applet blocken? Allgemeine Java-Themen 2
T Mit Applet per RandomAccessFile Datei öffnen Allgemeine Java-Themen 3
Horst79 Ein ganz simpler filebrowser als applet Allgemeine Java-Themen 2
A Problem mit signiertem Applet Allgemeine Java-Themen 8
T File runterladen mit meinem Applet? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben