You are not logged in.

  • Login

1

Friday, October 8th 2010, 3:18pm

Applet Security Manager

Hallo,
ich habe folgendes Problem: Ich programmiere zur Zeit mit Bluej, bei dem Versuch mit einer Methode eine Textdatei zu erzeugen/zu beschreiben tritt mein Fehler auf. Nach langem hin und her habe ich herausgefunden dass es am SecurityManager des Applet liegt. Nun meine Frage gibt es eine Möglichkeit den SecurityManager des Applet auszuschalten bzw. dem Applet Rechte zu übergeben?

Schonmal Danke!

2

Friday, October 8th 2010, 8:16pm

Denkst du dabei an einen SecurityManager in BlueJ oder an einen in deinem Browser? Also dass BlueJ Schreibzugriffe unterbindet halte ich für unwahrscheinlich.

Im Galileo OpenBook findest du jedenfalls alles was den Applet Security Manager angeht:
http://openbook.galileocomputing.de/java…nsel_26_003.htm

Dort findest du unter anderem die Einschränkung:

Quoted

Applets dürfen nicht auf lokale Dateien des Client-Rechners zugreifen, sie etwa erzeugen, lesen, modifizieren oder löschen. Sonst könnten sie wichtige Systemdateien an ihren Heimatserver übermitteln, und das stellt ein ernsthaftes Risiko dar.


Unter weiter unten auch die Möglichkeiten du die hast.

3

Friday, October 8th 2010, 10:04pm

Schonmal danke für die schnelle Antwort und ich denke dabei an einen SecurityManager in BlueJ. Ich habe nun den Quelltext in Eclipse übertragen und da funktionier das erstellen und Beschreiben von Dateien reibungslos: Darum denk ich dass es nur am Applet von BlueJ bzw dessen SecurityManagers liegen kann.

4

Saturday, October 9th 2010, 8:43am

Konkretisiere das mal mit Eclipse.. hast du die Applet Datei mal in Eclipse erstellt und anschließend im Browser getestet?

5

Saturday, October 9th 2010, 11:53am

Also ich habe einfach den Quelltext von BlueJ in Eclipse kopiert und habe dabei lediglich den Namen des Applets in main umgenannt.Dann habe ich das Programm als Java-Applet gestarte. Hat auch alles funktioniert und das Schreiben bzw das einer Datei hat auch geklappt.Um es vielleicht deutlicher zu machen hier mein Quelltext.


Hier das Applet:

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.io.*;
 
 
 
public class DasApplet extends Applet implements ActionListener
{
    Button button1;
    Cschreiber schreiber;
    Label test;
 
    public void init()
    { 
 
        schreiber = new Cschreiber();
        button1=new Button("Speichern");
        test = new Label("");
        button1.addActionListener(this);
        add(button1);
        add(test);
 
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == button1)
        {
            test.setText("hat nicht geklappt");
            schreiber.schreiben();
            test.setText("hat geklappt");
        }
 
    }
}

und hier die Klasse Cschreiber

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.*;
 
public class Cschreiber
{
String inhalt;
public File file;
 
public Cschreiber()
{
inhalt =new String("hallo");
}
 
 
public void schreiben() {
try { 
inhalt = "hallo";
file = new File("Test.txt");
PrintWriter writer = new PrintWriter(file);
writer.write(inhalt);
writer.close();
 
} catch (FileNotFoundException e) {
 
e.printStackTrace();
}
} 
}

6

Saturday, October 9th 2010, 8:10pm

ah ok, beim Eclipse Beispiel nutzt du normalen Java Code - ohne das Klassengerüst von BlueJ.
Ich hab zwar im Internet nichts dazu gefunden, aber dann scheint es wohl einfach so zu sein, dass BlueJ dir das Schreiben aus dem Applet heraus nicht erlaubt.
Dann nutze doch einfach den Code, den Eclipse Code in deiner BlueJ IDE. Am Ende ist alles doch nur Java ;)

Similar threads

Social bookmarks