Deborah: Security und Sockets

Hallo Leute,

ich habe ein Problem:
ich habe eine Java Applikation geschrieben, die einige Daten ermittelt und mithilfe einer Socket-Verbindung an ein Java-Applet sendet. Beides liegt auf dem gleichen Server.
Wenn ich das Applet mit dem Appletviewer starte funktioniert es, wenn ich dazu aber den IE5 benutze, bringt er mir nur eine graue Flaeche wo das Applet ist und die Meldung:
exception:com.ms.security.SecurityExceptionEx[Applet.start]: cannot access "hostnummer": portnummer

was kann ich dagegen tun?
Danke fuer eure Hilfe

mfg Deborah

  1. Hallo,

    was kann ich dagegen tun?

    Zum eigenen Host sollte er eigentlich eine Verbindung herstellen dürfen. Kannst Du uns mal den Quelltextabschnitt mitteilen, wo Du die Verbindung initiierst?

    Gruss
       MichaelB

    1. Zum eigenen Host sollte er eigentlich eine Verbindung herstellen dürfen. Kannst Du uns mal den Quelltextabschnitt mitteilen, wo Du die Verbindung initiierst?

      ok hier kommt der Quelltext des Applets:
      import java.applet.*;
      import java.awt.*;
      import java.awt.image.*;
      import java.io.*;
      import java.net.*;

      public class CounterClient extends Applet {

      private Image[] digit;

      private String counter;

      public void init() {
          setBackground(new Color(246, 246, 246));
          Image image = getImage(getCodeBase(), "Digits.gif");
          MediaTracker tracker = new MediaTracker(this);
          tracker.addImage(image, 1);
          try {
            tracker.waitForID(1);
          } catch(InterruptedException e) {
          }
          ImageProducer producer = image.getSource();
          digit = new Image[10];
          for (int i = 0; i <= 9; i++) {
            ImageFilter filter = new CropImageFilter(0 + i * 14, 0, 14, 19);
            digit[i] = createImage(new FilteredImageSource(producer, filter));
            tracker.addImage(digit[i], 2);
          }
          try {
            tracker.waitForID(2);
          } catch(InterruptedException e) {
          }
        }

      public void start() {
          try {
            Socket socket = new Socket(getParameter("host"), Integer.parseInt(getParameter("port")));
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            counter = input.readLine();
            input.close();
            socket.close();
          } catch (IOException e) {
          }
          repaint();
        }

      public void paint(Graphics g) {
          for (int i = 0; i < counter.length(); i++) {
            int value = Integer.parseInt(new Character(counter.charAt(i)).toString());
            g.drawImage(digit[value], 0 + i * 14, 0, this);
          }
        }
      }

      ich hoffe, das hilft weiter.
      Momentan probier ich alles noch lokal aus, das Applet greift also auf eine Applikation zu, die sich auf demselben Rechner befindet (was spaeter dann auch der Fall waere)

      Danke,
      mfg Deborah

      1. Tag

        Wenn du das alles lokal probierst, ist dann der HOST auch der deines Rechners... von dem du das Applet aufrufst??? Den der Browser lässt ja nur Zugriffe auf den Server der Domain zu.

        Meist reagiert der Browser auch allergisch ... wenn man versucht derartige Sachen mit einem Aufruf aus festen Verzeichnissen zu versuchen.

        In einer Server Client Umgebung mit entsprechend notierten Domains sollte es funzen.

        cu

  2. moin Deborah

    ich habe ein Problem:
    ich habe eine Java Applikation geschrieben, die einige Daten ermittelt und mithilfe einer Socket-Verbindung an ein Java-Applet sendet. Beides liegt auf dem gleichen Server.
    Wenn ich das Applet mit dem Appletviewer starte funktioniert es, wenn ich dazu aber den IE5 benutze, bringt er mir nur eine graue Flaeche wo das Applet ist und die Meldung:
    exception:com.ms.security.SecurityExceptionEx[Applet.start]: cannot access "hostnummer": portnummer

    Der IE verbietet aufgrund der Sicherheitseinstellungen für Applets den Zugriff auf das auslesen des "localhost". Um das Problem zu umgehen kannst du versuchen die Sicherheits Stufe für Java Applets auf eine niedrigere Stufe zu setzten.

    Die elegantere Methode besteht darin das Applet zu signieren... !
    Schau mal nach signierten Applets... es sollte noch weitere Alternativen geben.... Mehr Informationen solltest du auch in der Doku zum Java Plug-in finden.

    cu