Applet Security Manager

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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!
  • 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:
    openbook.galileocomputing.de/javainsel8/javainsel_26_003.htm

    Dort findest du unter anderem die Einschränkung:
    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.
  • 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:

    Quellcode

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

    und hier die Klasse Cschreiber

    Quellcode

    1. import java.io.*;
    2. public class Cschreiber
    3. {
    4. String inhalt;
    5. public File file;
    6. public Cschreiber()
    7. {
    8. inhalt =new String("hallo");
    9. }
    10. public void schreiben() {
    11. try {
    12. inhalt = "hallo";
    13. file = new File("Test.txt");
    14. PrintWriter writer = new PrintWriter(file);
    15. writer.write(inhalt);
    16. writer.close();
    17. } catch (FileNotFoundException e) {
    18. e.printStackTrace();
    19. }
    20. }
    21. }
    Alles anzeigen
  • 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 ;)