[Applet] Access denied / Network unreachable bei Verbindung zum Server

Wutklumpen

Mitglied
Hallo!

Ich arbeite gerade an einem Applet, welches auf eine Datenbank zugreifen muss. Das Applet wird vom selben Server heruntergeladen.

Funktioniert auch tadellos, bis auf 2 Firmennetzwerke, wobei mir folgende Fehlermeldungen beim aufbau der Connection gegenüberstehen:

Unsigniertes Applet:
"java.security.AccessControlException: access denied (java.net.SocketPermission x.x.x.x:80 connect,resolve)"
Finde ich an sich schon komisch, weil Zugriff eben auf Download-Server (Oder hab ich das mit der Restriction falsch verstanden?)

(selbst)Signiertes Applet:
"java.net.SocketException: Network is unreachable: connect"

So, nun steh ich da. Ist das jetzt eher eine Firewall-Einstellungssache, oder gibt es irgendwo Java-Securitysettings, bei dem der Fall "Connection aus Applet aufbauen" nochmal regelt werden kann? Firewall denke ich ja fast nicht, da das Applet an sich erfolgreich geladen werden kann, nur bei der Verbindung krachts halt weg. Download/REST-Anfragen aus den Netzwerken auf den Server sind kein Problem. =(

Java-Version Update 18,23,24,26 getestet, verscheidenste Betriebssysteme, an der Rechenkonfig sollte es also nicht liegen.

Firewall oder Java-Security?
Hoffe ihr könnt mir helfen, vielen Dank schon im Vorraus! Mehr Infos? Einfach fragen Posten, bin mir nicht sicher, was noch relevant wäre.

Grüße, Wutklumpen
 
Also die tatsache das es selbst bei einem signierten Applet kracht und das sogar mit der Exception "Network unreachable" lässt eigentlich nur eine Vermutung zu : FIREWALL. Wenn das Applet in verschiedenen Netze mit verschiedenen System-Configs läuft und nur bei diesen beiden Speziellen Netzen fehlschlägt würde ich hier auf dir Config des Netzes tippen. Auch wäre zu prüfen ob nicht doch globale Einstellungen für Java gesetzt wurden die eine Verbindung blockieren *wobei durch Signierung FAST alles außer Kraft gesetzt wird*. Frage doch mal die entsprechenden System-Admins ob diese dazu was wissen.
Was auch zu großen Problemen führen kann : Proxies. Wenn das Netz so gebaut ist das alle Verbindung über einen Proxy geleitet werden kann es auch sein das dieser die Anfrage total blockiert *zwar den MIME-Type application/x-java-applet zulässt aber RAW-Sockets blockt*. Auch gibt es Configs bei denen das Applet selbst nicht mal geladen werden kann *Squid mit der Config das application/x-java-applet blockiert wird*, aber da das Applet ja zumindest geladen wird wird es das wohl nicht sein.

Wie gesagt : setze dich mal mit den zuständigen Admins in verbindung. Die sollten wissen was du los ist.
 
(oO wo ist mein Post?, dann nochmal...)

Vielen Dank für die schnelle Antwort. Proxy ist ein guter Tip, dem werde ich gleich mal nachgehen. Die globalen Einstellungen für Java, hast du eine Idee wie wo was man das machen kann? Damit ich dem Admin notfalls sagen kann, wo er suchen soll. "*war den MIME-Type application/x-java-applet zulässt aber RAW-Sockets blockt*" hört sich für mich ziemlich plausibel an, ich hoffe, dass es daran liegt.

Gruß, Klumpen
 
Another Idea, WireShark told me, that the request goes to port 80, but comes from port ${something between 51000 - 52000}. And i could imagine that those ports are blocked by the firewall, even while connection is outgoing... can i tell the applet a port range to use for such connections? It's one of the cases where google didn't help! =(
 
Ähm ... war das absicht das du den Post auf englisch geschrieben hast ?
Zum Post selbst : nein ! Nur der Programmierer kann seinem Applet einen Source-Port zuweisen. Von außen kann man da nichts machen.
 
Oh mein Gott! Es wird Zeit für Urlaub! :D Das war mir jetzt nicht wirklich bewusst!^^
nein ! Nur der Programmierer kann seinem Applet einen Source-Port zuweisen. Von außen kann man da nichts machen.

Da ich ja der Programmierer bin, kann ich das also theoretisch machen! Aber wie zum.. ?^^ Such die ganze zeit nach Settings/Properties/Options *ARGL*
 
Schon einmal ein Blick in die DOC von java.net.Socket geworfen ?
http://download.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.net.InetAddress, int, java.net.InetAddress, int)
Erstellt einen neuen Socket der sich zu zum angegeben Host auf angebenen Port verbindet. Hier kann auch die lokale Adresse und der lokale Port zugewiesen werden. Die lokale Adresse kannst du durch null ersetzen ... dann wählt Java automatisch eine aus. Den lokalen Port kannst du an sich frei wählen .. aber ich denke nicht das du eine unter 1024 bekommst ohne dein Applet zu signieren.
 
Zurück