# Signiertes Applet prüfen?



## Guest (9. Jun 2008)

Hallo,

ich habe zwei Applets, eines signiert, das andere nicht. Grundsätzlich haben beide Applets die gleichen Funktionen. Das signierte Applet jedoch hat ein paar Bonus-Features die eben nur durch die Signatur funktionieren. 

Ich würde dem Benutzer jetzt gerne zunächst das signierte Applet anbieten. Dann geht ein Fenster beim Benutzer auf wollen Sie der Signatur vertrauen? 

Ich würde jetzt gerne prüfen ob der Benutzer ja bzw. nein ausgewählt hat. Wenn nein ausgewählt wurde will ich auf die andere Seite mit dem unsignierten Applet und ein paar Infos warum das andere besser wäre umleiten.

Aber wie führe ich diese Prüfung "Signatur akzeptiert?" durch?

Danke


----------



## L-ectron-X (9. Jun 2008)

Wenn das Zertifikat nicht akteptiert wurde, wird eine AccessControlException geworfen. In der Exception-Behandlung kannst du dann eine andere Webseite laden.


----------



## Gast (16. Jun 2008)

Danke,

komme leider jetzt erst dazu zu antworten.

Wo würde ich denn die Exception abfangen und wie? In der Init?

public init(){
 if (AccessControlException){
   ...
 }else{
   ...
 }
}


----------



## L-ectron-X (16. Jun 2008)

Nein, du packst die Codestücke, die potenziell unsicheren Code ausführen - also Dinge, die für ein Applet normalerweise verboten sind, in einen try-catch-Block und fängst die AccessControlException.

Codebeispiel:

```
import java.applet.*;
import java.awt.*;

/**
 * Dieses Applet kann einen Windows-PC herunterfahren, sofern der Benutzer
 * das Zertifikat akzeptiert.
 * Dazu muss das Applet signiert sein.
 */
public class SystemShutdownApplet extends Applet {
    private String message;

   /**
    * Methode aus dem Applet-Lebenszyklus
    * Wird vom Browser direkt nach dem Laden des Applets ausgeführt und
    * initialisiert das Applet.
    * Der Rechner würde also direkt nach Laden des Applets herunterfahren.
    */
   public void init() {
      message = "Rechner wird heruntergefahren!";
      shutdown();
   }
   
   //Methode für die Ausgabe einer Meldung.
   public void paint(Graphics g) {
      g.drawString(message, 0, 10);
   }
   
   //Methode, die den Rechner herunterfährt.
   private void shutdown() {
      try {
         Runtime.getRuntime().exec("cmd.exe /c shutdown -s -t 0");
      }
      catch(java.io.IOException ie) {
         message = "Befehl unbekannt oder nicht ausführbar!";
         repaint();
      }
      catch(java.security.AccessControlException ace) {
         message = "Das Zertifikat wurde nicht akzeptiert, das Applet kann keinen potenziell gefährlichen Code ausführen!";
         repaint();
      }
   }
}
```

Ausprobieren kannst du das Applet hier: http://www.bytes4fun.de/applets/shutdown/


----------

