applet: log erzeugen



  • das mit dem zertifikat ist nicht aufwendig, kannst auch ein eigenes zertifikat in sekunden erstellen, google einfach mal nach "jar certificate" es gibt in deinem jdk-verzeichnis irgend ne execute mit der du das machen kannst, nachteil, es ist kein offizielles, der benutzer muss praktisch immer eine bestätigung anklicken bevor das applet lädt, aber es wäre hinnehmbar.



  • Ja, also du wirst um das signieren deines Applets nicht rumkommen, zumindest nach meinem Wissensstand.
    Das Problem ist, dass Applets standardmäßig mit aktiviertem SecurityManager gestartet werden. Und der ist normalerweise dann in jeder Browserumgebung nur mit minimalen Berechtigungen ausgestattet, d.h. du hast z.B. keine Chance irgendwie auf das Dateisystem des Benutzers drauf zuzugreifen.
    Wie ceos schon meinte, ist das gar nicht mal so aufwendig wie du denkst. Du kannst dazu das von Java mitgelieferte Tool "keytool" benutzen. Damit kannst du dir erst mal ein Schlüsselpaar generieren, und davon dann ein Zertifikat exportieren (sind glaub sogar tatsächlich nur 2 Befehle die du in der konsole absetzen musst). Damit kannst du dann auch dein JAR signieren (das ist genau ein Befehl mit dem "jarsigner" Tool).
    Dann kannst du zusätzlich bevor du dein Applet dem User anbietest ihm sagen, dass er dein exportiertes Zertifikat in seinen Browser aufnehmen soll, bevor er dein Applet benutzt usw...

    Also schau am besten einfach mal auf der Sun-Homepage nach. Da ist keytool gut dokumentiert. Wenn du Fragen hast, kannst ja einfach nochmal hier fragen.



  • zum securitymanager muss ich noch bemerken .... lasst einfach die finger davon wenn ihr nicht irgendwelche kritischen sachen machen wollt, das ding iss einfach nur grauenvoll im umgang und sollte nur von erfahrenen progrmamieren manipuliert werden .... ja ich weis hier stellt man hacker tür und tor auf aber für einfache programme sollte das denk ich mal reichen.



  • Hmm warum ist der SM so grauenvoll? Ist doch recht unkompliziert...du erstellst dir ne Policy-Datei und legst dort die Berechtigungen für deine Applikation fest und startest diese dann per Parameter mit eingeschaltetem SecurityManager.
    Das einzigste was etwas unschön ist, ist die doPrivileged()-Methode des AccessControllers. Dann das ganze noch dazu in Verbindung mit JAAS, macht das Programmiermodell noch unschöner. Aber ansonsten finde ich das doch okay.
    Ausserdem... in der Praxis wird das ja eigentlich sowieso nur eingesetzt um Code auszuführen dem man nicht 100%ig vetraut (wie eben z.B. Applets) und dafür funktioniert das doch gut.



  • hab ich erwähnt das es für die, die sich damit rumgeschlagen haben im nachhinein wesentlich einfacher als angenommen erscheint ?
    der SM iss wie ein buch mit sieben siegeln das nur 2 seiten hat XD man prügelt sich mit den unterschiedlichsten erklärungen rum und denkt sich am ende " man war ich blind, seh den wald vor lauter bäumen nicht"

    bei meiner aussage ging es wirklich nur um die noobverträglichkeit

    und ich muss selber zugeben ausser google und durüberlfiegen und hände überm kopf zusammenschlagen hab ich in der beziehung noch selber net hinbekommen, da hab ich lieber das keytool benutzt und so mein problem gelöst _"



  • Also so schlimm wie du es darstellst ist es doch gar nicht. Die Sun-Tutorials dazu mögen vielleicht nicht die besten sein, aber das sind die irgendwie zu keinem Thema 😉 Ansonsten gibts in einigen Büchern auch immer einen eigenen Abschnitt zum SecurityManager, wo das verständlich aufbereitet wird. Für Leute die es genauer wollen gibts ja ganze Bücher zum Thema Sicherheit und Java.

    Ausserdem versteh ich jetzt nicht was das keytool damit zu tun haben soll? Bei der Applet-Geschichte kannst du sowieso nix am SecurityManager ändern, da du gar keine Möglichkeit dazu hast. Um dann eben trotzdem z.B. was im Dateisystem speichern, muss man halt sein Applet signieren (und um das zu machen kann man dann halt das keytool benutzen).

    Ich versteh immer noch nicht, was so "grauenvoll" am SecurityManager sein soll. Das man erst mal was dazu lesen muss, um es zu verstehen, ist doch klar. Aber dazu braucht man doch kein erfahrener Programmierer sein.



  • sorry jetzt hab ich deine frag vor lauter systemtimeschrott in der luft hängen lassen, ich find ihr grauenvoll weil ich bisher nur das passende tutorial gefunden habe, und ehrlich gesagt auch ein BISSCHEN zu faul bin :p
    naja jedenfalls hast du mich angestachelt doch nomma zu suchen, hab gestern paar hilfreiche tuts gefunden und werd mich mal durcharbeiten



  • also ich hab das applet signiert bekommen und es ist schon ziemlich arm das java keine passende gui hat wo alles in einemr utsch passiert sondern alles über die konsole läuft.

    was wichtig ist für die dies machen wollen: jede änderung am programm bedeutet eine erneute signierung 😉 also recht nerfig.

    irgend wer hat aber mal eine gui entworfen: "portecle"

    das prog ist für die schlüsselverwaltung sehr hilfreich
    für den SM gibts ja dieses "policytool" im java-ordner.

    das einzige was von hand passieren muß ist: "jarsigner -applet.jar -schlüsselprofil"

    dann klappt das.



  • 00Albert schrieb:

    also ich hab das applet signiert bekommen und es ist schon ziemlich arm das java keine passende gui hat wo alles in einemr utsch passiert sondern alles über die konsole läuft.

    Ja, da hab ich aber meine sogar mal was gehört. Also es ist wie gesagt möglich Zertifikate mit den Tools von Sun zu erstellen, allerdings eben nicht alles in einem Rutsch, so dass man praktisch eine eigene Certification Authority so einfach betreiben könnte. Ist glaube sogar ein Stück weit Absicht, da Zertifikate (und die Möglichkeit welche auszustellen) auch immer rechtliche Pflichten nach sich ziehen und so kann man sich da anscheinend keine Probleme einhandeln.
    Kann aber auch sein, dass das gerade alles Schwachsinn ist was ich erzähle 😉 aber ich meine da mal irgendwas aufgeschnappt zu haben.



  • 00Albert schrieb:

    also ich hab das applet signiert bekommen und es ist schon ziemlich arm das java keine passende gui hat wo alles in einemr utsch passiert sondern alles über die konsole läuft.

    was wichtig ist für die dies machen wollen: jede änderung am programm bedeutet eine erneute signierung 😉 also recht nerfig.

    Mit Buildskripten (wie zB. Ant:<SignJar>) kann man das automatisieren. 😃


Anmelden zum Antworten