Rechte Probleme bei Applets

Status
Nicht offen für weitere Antworten.

robb

Bekanntes Mitglied
Moin,

ich habe mir eine Application erstellt, die auf Images von unserem Webserver zugreift. Jetzt habe ich das Programm zu einem Applet umgeschrieben und habe keine Erlaubnis auf die Images zuzugreifen.

Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.io.FilePermission W:\basic_layout\images\infobank\telefone\nokia\7710\7710.gif read)

Ich habe schon etwas länger nach einer Lösung für dieses Problem gesucht nur leider habe ich noch nichts gefunden was mir wirklich weiterhelfen konnte. Die gesamten Klassen für das Programm sind signiert, aber ich denke es wird sich eher um die Sicherheitseinstellungen von dem Applet handeln.

Ich hoffe es kann mir jemand weiterhelfen.

mfg Robb
 

robb

Bekanntes Mitglied
Das Applet soll später mal auf dem Webserver liegen und dort auch aufgerufen werden. Gibts da keine Möglichkeit, dass ich auf die Images zugreifen kann?
 

AlArenal

Top Contributor
Das Applet soll auf dem Webserver aufgerufen werden?? Wasn das fürn seltsamer Webserver, wo noch ein User dran sitzt und Applets aufruft?
 

Wildcard

Top Contributor
Ich versteh den Sinn dahinter zwar nicht, aber falls das Applet wie du sagst signiert wäre, und du die erforderlichen Rechte auf dem Laufwerk hättest, würde auch keine AccessControlException fliegen.
 

robb

Bekanntes Mitglied
@AlArenal: Vielleicht verplane ich gerade irgendwas grundsätzliches oder ich habe mich falsch ausgedrückt, aber auf dem Webserver liegt auch die Websitestruktur wo interne Mitarbeiter Infos erhalten. Und hier möchte ich das Applet verlinken...

@Wildcard: Also ich kann auf dem Laufwerk alles sehen editieren und löschen was ich möchte. Und das Signieren des Applets musste ich in sofern machen, da ich noch auf eine SQL Datenbank zugreife, in der ich unter anderem auch den Pfand eines bestimmten Images speichere. Deswegen habe ich alle Klassen, die mein Applet verwendet signieren lassen.
 

robb

Bekanntes Mitglied
Ja, sorry die Klassen wurden natürlich erst in ein jar archiv gepackt und dann signiert.
Blöde Frage: Wie kann ich feststellen was laut meiner Policy erlaubt ist?
 

Wildcard

Top Contributor
*lach*
Dann müsstest du ja auch beantworten können welche Rechte du deinem Applet eingeräumt hast.
 

robb

Bekanntes Mitglied
genau hier bin ich am stocken...
Ich möchte ja nur die FilePermission erhalten für das Applet. Deswegen brauch ich auch nicht mehr schreiben als:


Code:
grant SignedBy "gj22" {
  permission java.io.FilePermission "W:\\basic_layout\\images\\infobank\\telefone\\*", "read,write";

};

Ich habe die java.policy momentan allerdings noch in meinem lokalen user verzeichnis stehen, anstatt unter c:\windows\, da auch dort meine .keystore datei ist. Ich hab keine Ahnung ob ich das nu verschieben soll oder ob es so richtig ist und mein Fehler wo anders liegt.
 

Yzebär

Bekanntes Mitglied
Ich wurde an deiner Stelle die Architektur deiner Anwendung überdenken. Daß ein Applet übers Netzwerk auf eine Datenbank oder das Filesystem eines Webservers zugreift halte ich nicht für besonders clever oder sicher. Ich würde an deiner Stelle auf Webservices umsteigen oder auf dem Webserver einen RMI-Server betreiben, der die gewünschten Dienste zur Verfügung stellt (zB schick mir das Bild soundso übers Netzwerk) und Zugriff auf das lokale Filesystem und die Datenbank hat. Falls du an so einer Lösung interessiert bist, kann ich dir Näheres dazu erläutern.
 

robb

Bekanntes Mitglied
Jo würde mich schon interessieren. Ich habe in der Uni nur mit Applets und Applications gearbeitet und habe deswegen keine Erfahrungen mit Alternativen. Wichtig wäre mir nur, dass ich es auf einer html Seite einbinden kann.

ps. Die Datenbankabfragen funktionieren wunderbar, so wie es im Moment implementiert ist.
 

Yzebär

Bekanntes Mitglied
Im Moment sieht es doch so aus, daß dein Applet direkt auf Ressourcen zugreift (Datenbank, Filesystem). Das lokale Filesystem und Datenbanken sollten aber im WAN(Wide Area Network) tabu sein. Die Tür, die du deinem Applet eröffnest, steht nämlich auch allen anderen zur Verfügung.

Deswegen die Idee mit dem RMI-Server. RMI (Remote Method Invocation) bedeutet ganz grob gesagt, daß du Methoden eines auf einem RMI-Server gehosteten Objekts aufrufen kannst. Das besondere daran ist, daß die Methoden auf dem Server ausgeführt werden und die Rückgabewerte an den Client übertragen werden (sofern die Rückgabeobjekte serialisierbar sind).

Kleines Beispiel. Du willst irgendein Bild in deinem Applet anzeigen, das aber im Filesystem deines Servers liegt, der Pfad zu dem Bild liegt in deiner Datenbankl. Dann entwickelst du einfach ein Remoteobjekt mit zwei Methoden, eine Methode liefert dir eine Liste der verfügbaren Bilder und eine andere liefert ein Bild(Parameter Bildname). Du schreibst einen RMI-Server, der nur eine Java-Applikation ist, in dem das Remote-Objekt erzeugt und veröffentlicht wird, so daß es im Netzwerk erreichbar ist. Das Applet verbindet sich mit dem Remote-Objekt und ruft die Methoden auf und zeigt am Ende das gewünschte Bild an.

Was hast du erreicht? Der RMI-Server(Java-Applikation) greift auf das lokale Filesystem und die Datenbank zu und veröffentlicht Methoden, um Daten oder Werte aus den beiden Ressourcen zu empfangen. Beide Ressourcen bleiben ansonsten im Netzwerk unsichtbar und bieten keine Angriffsfläche für böswillige Zeitgenossen. Das Applet braucht nur die Berechtigung sich mit dem RMI-Server verbinden zu dürfen und ansonsten keine zusätzlichen Berechtigungen. Du kannst jedes serialisierbare Objekt im Netzwerk übertragen (RMI verwendet dazu ein eigenes Protokoll) und Programmlogik aus deinem Applet auf den RMI-Server auslagern, d.h. du könntest Funktionalität ändern, ohne ein neues Applet veröffentlichen zu müssen.

Im Netz gibt es viele Tutorials zu einfachen RMI-Server-Client-Anwendungen, die Technologie ist eigentlich ziemlich komfortabel (komplett Java mit eigenem Übertragungsprotokoll) anzuwenden, komischerweise aber wenig verbreitet.
 

robb

Bekanntes Mitglied
Hört sich sehr gut an. Nur was ich daran ein wenig komisch finde ist, dass das Applet später auch auf dem selben Server liegen wird. Und es wird auch nur im lokalen Netzwerk zugänglich sein. Von aussen wird dieses Applet nicht angesprochen werden können.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
platofan23 Probleme mit Socket bei Android Studio? Netzwerkprogrammierung 22
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
K Probleme bei HTML-Mail-Abruf mit IMAP bei 1und1 Netzwerkprogrammierung 2
L Socket SSLServer Probleme Netzwerkprogrammierung 0
H Probleme mit UDP Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
R Probleme mit JMS Netzwerkprogrammierung 1
A Probleme beim Klassen-Import von sun.misc. ... Netzwerkprogrammierung 19
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
B Probleme beim ersten Netzwerkprogramm Netzwerkprogrammierung 3
M Probleme mit FTP Netzwerkprogrammierung 19
windl URLConnection unter 1.7 macht Probleme Netzwerkprogrammierung 14
Z Socket Probleme beim Senden und Empfangen Netzwerkprogrammierung 5
Z Probleme beim Senden von Nachrichten an den Server Netzwerkprogrammierung 9
Maxim6394 Probleme bei Messenger Netzwerkprogrammierung 16
I Socket UDP Hole Punching bereitet Probleme Netzwerkprogrammierung 14
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
S HTTP Probleme mit POST-Befehl Netzwerkprogrammierung 2
R FTPS - Probleme mit FTPSClient Netzwerkprogrammierung 2
S Probleme mit XMLEncoder/XMLDecoder Netzwerkprogrammierung 2
D Server - Client Probleme Netzwerkprogrammierung 9
Weiti HTTP Zertifikat-Probleme - InstallCert.java Netzwerkprogrammierung 2
M Socket Probleme mit einfacher Socketverbindung Netzwerkprogrammierung 3
H Probleme mit GUI (RMI) Netzwerkprogrammierung 6
T RMI Probleme mit RMI-Server Netzwerkprogrammierung 4
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
T FTP Probleme mit Passiv und Binary Mode Netzwerkprogrammierung 3
J Probleme mit Threads (Client terminiert) Netzwerkprogrammierung 4
S Socket SocketServer und Client machen Probleme Netzwerkprogrammierung 6
B Server / Client Anwendung, Client GUI Probleme Netzwerkprogrammierung 11
F RMI probleme Netzwerkprogrammierung 3
D Probleme bei mehreren Clients uns Senden von Messages Netzwerkprogrammierung 16
E jPcap Probleme Netzwerkprogrammierung 3
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
T Probleme mit Jpcap Netzwerkprogrammierung 18
P Probleme mit OutputStream Netzwerkprogrammierung 7
P Probleme beim weiter senden von Datein Netzwerkprogrammierung 10
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
L Probleme bei Chatserver Netzwerkprogrammierung 6
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
G Probleme mit SecruityManager + RMI Netzwerkprogrammierung 10
derMartin Probleme mit NNTP Client Netzwerkprogrammierung 2
A Probleme mit Citrix Netzwerkprogrammierung 17
A Probleme mit kleinem Messenger-Programm Netzwerkprogrammierung 4
K RXTXcomm : Install - Probleme Netzwerkprogrammierung 7
R Probleme mit UDP Netzwerkprogrammierung 4
P Probleme bei Chat programm Netzwerkprogrammierung 2
I Probleme mit 'JSSE Samples' von Sun Netzwerkprogrammierung 5
T RMI - Probleme beim Starten des Clients Netzwerkprogrammierung 4
E InetAddress Klasse-Probleme Netzwerkprogrammierung 4
M dateien übertragen, probleme mit versch. Strömen? Netzwerkprogrammierung 4
D EA-Exception Network Adapter macht probleme Netzwerkprogrammierung 2
G Probleme mit Firewall beim empfangen von dateien über socket Netzwerkprogrammierung 6
P Probleme mit Input- / Output-Streams Netzwerkprogrammierung 2
V probleme mit dem chat programm Netzwerkprogrammierung 4
F WLAN Probleme (CLIENT-SERVER) Netzwerkprogrammierung 4
J Probleme mit ObjectOutputStream! Netzwerkprogrammierung 15
S Probleme beim Beschränken der Geschwindigkeit Netzwerkprogrammierung 6
M Probleme beim Abfangen von Streams Netzwerkprogrammierung 5
G Fragen/Probleme mit JavaMail Netzwerkprogrammierung 2
N Java-Chat (lauffähig) macht Probleme auf der Konsole Netzwerkprogrammierung 6
P Probleme mit einem Array aus Sockets Netzwerkprogrammierung 2
C Probleme bei Dateiupload mit socket Netzwerkprogrammierung 4
T FTP Chatprogramm probleme Netzwerkprogrammierung 2
C RMI Probleme mit iptables Netzwerkprogrammierung 2
D socket exception + timing probleme Netzwerkprogrammierung 2
G Probleme bei Proxy-Server! Netzwerkprogrammierung 5
S Probleme mit HttpURLConnection Netzwerkprogrammierung 10
D Habe 2 Probleme: Input eingabe und Multi Socket Server Netzwerkprogrammierung 2
B applets mit FTP/MySQL Netzwerkprogrammierung 22
M Authentifizierung beim Start von Java-Applets Netzwerkprogrammierung 2
aze Tcp Verkehr eines Applets simulieren Netzwerkprogrammierung 10
A einfacher Transfer mit Applets Netzwerkprogrammierung 4
G Chat zwischen applets: möglich? Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben