Applet, .dll, .so

Hi,

ich schreibe ein Applet, das zur Laufzeit (auf dem Client) auf einen Chipkarten-Leser zugreift. Einen Teil des Applets muss ich also in C schreiben (JNI). Clients können sowohl Win32-Maschinen als auch Linux- und SUN-Boxes sein. Auf allen Clients ist SUN JRE 1.4.2 installiert.

Wie muss ich es anstellen, dass nur die für das OS entsprechende Bibliothek auf den Client geladen wird und auch nur diese Bibliothek via loadLibrary() genutzt wird ?

Danke
für Eure Tips

Lars

Moin

Einen Teil des Applets muss
ich also in C schreiben (JNI).

Viel Glück und wenn das klappen soll: steig auf webstart um.

Wie muss ich es anstellen, dass nur die für das OS
entsprechende Bibliothek auf den Client geladen wird und auch
nur diese Bibliothek via loadLibrary() genutzt wird ?

Das Problem: loadLibrary() ist für Applets prinzipel verboten. Das gleiche Problem:

http://www.wer-weiss-was.de/cgi-bin/forum/showarchiv…

cu

Moin

Tachchen,

Danke für Deine (höhnische) Antwort …

Schau mal hier:
http://www.javaworld.com/javaworld/jw-10-1998/jw-10-…

Gruss,
Lars

Moin

> http://www.javaworld.com/javaworld/jw-10-1998/jw-10-…

Klasse. Das funktioniert nur mit Netscape:

„To compile these files, you need the netscape.security Privilege class in your classpath.“

Das heist im Klartext: alle deine Applet-User müssen Netscape 4 oder höher installiert haben. Und der User darf nicht am Classpath gespielt haben. Und die JVM muss vom Browser stammen, oder zumindest nach ihm installiert worden sein. Und mit Firefox gehts schon nicht mehr (die jar fehlt), mozilla hab ich zum testen nicht hier.

nagut, dabei erreicht man also etwa 2-4 % der User. Und der Rest ?

Oder meinst du den Teil:
"Previous articles (see Resources) have covered both creating signed applets that can access resources „outside the sandbox“ (…)

Ja, wenn du dir eine Sig von Verisign&Co leisten kannst: klar doch, kein Thema. Das beschreib ich ja auch in dem anderen Post. Kannst ja auch versuchen als CA aufzutretten…als ob man Verisign mehr trauen könnte…

cu

Das Applet kann ja auch ohne Verisign-Zeritifikat signiert werden.
Dann braucht es einfach die Zustimmung des Benutzers im Browser.

Wenn diese Applikation für den firmeninternen gebrauch ist, ist das sicher kein Problem.

Gruss, Simon

Viel Glück und wenn das klappen soll: steig auf webstart um.

Das finde ich auch :wink:
Aber bei Webstart müssen die Jars doch auch signiert sein?

Gruss, Simon

Moin

Das Applet kann ja auch ohne Verisign-Zeritifikat signiert
werden.

Ja.

Dann braucht es einfach die Zustimmung des Benutzers im
Browser.

Nein. Selbstsigniertes kann keine Zusatzrechte einforden. Nur Signaturen deren Aussteller (CA) der Browser traut werden überhaupt ausgewertet, selbst erstellte Signaturen werden einfachso verworfen.

Wenn diese Applikation für den firmeninternen gebrauch ist, ist
das sicher kein Problem.

Stimmt, die Firma kann sich ja selbst als CA angeben und das CA-Cert auf allen Firmenrechner installieren.

cu

Moin

Aber bei Webstart müssen die Jars doch auch signiert sein?

Ja, aber Webstart fragt bei selbstsignierten einfach den User und ignoriert die Signatur nicht einfach so wie es Browser tun.

cu

Moin

Das heist im Klartext: alle deine Applet-User müssen Netscape
4 oder höher installiert haben.

Falsch!
Schau mal hier rein: $JAVA_HOME/jre/lib/plugin.jar

Diese Klassen kommen mit jedem SUN JDK (oder IBM JDK) mit. Die netscape.javascript.* Klassen funktionieren ohne Probleme auch mit IE. Wie’s mit FireFox aussieht, habe ich noch nicht getestet.

Zum Thema Signieren: Das Applet wird nur „im Hause“ eingesetzt. Sollte der Browser selbstzertifizierten Applets keine weiteren Privilegien einräumen, dann habe ich hier wirklich ein Problem - ja !

Viele Grüße
Lars