[linux-l] Juniper-VPN mit IcedTea-Web + OpenJDK unter Debian
Volker Grabsch
vog at notjusthosting.com
Sa Dez 24 01:10:44 CET 2011
dejoh at t-online.de schrieb:
> Danke Volker,
>
> Dir und allen Listenlesern wünsche ich frohe Weihnachten
Bitte sehr. Aber einen hab ich noch. :-) Vorher wünsche
aber auch ich euch allen fröhliche und entspannte Feiertage!
Problem
=======
Ich möchte auf ein Juniper-VPN über das entsprechende
Java-Applet zugreifen.
Leider lässt sich keine TCP-Verbindung aufbauen. In der
Kommandozeile zeigt der Browser folgende Fehlermeldung:
netscape.javascript.JSObject cannot be cast to java.lang.String
Es sind IcedTea-Web und OpenJDK unter Debian installiert. [1]
Des Problem existiert in Iceweasel/Firefox genauso wie in
Chromium. Mit dem proprietären JRE+Plugin von Sun/Oracle
funktioniert es jedoch.
Lösung
======
Das Problem ist bekannt [2] und wurde erst vor wenigen Tagen
in IcedTea-Web behoben [3]. Fast ein Weihnachtsgeschenk!
Leider gibt es noch kein neue Release von IcedTea-Web,
und es wird wohl noch etwas dauern, bis das in die
Standard-Pakete hinein wandert.
Also bauen wir es uns selbst. Wir könnten nun der
offiziellen Anleitung folgen (make && make install),
dann jedoch würde es spätestens beim nächsten Upgrade
Probleme geben.
Also lieber gleich ein sauberes Debian-Paket. Das
ist gar nicht so schwer! Als Benutzer "root"
installieren wir zunächst alle Hilfspakete, die
wir zum Selberbauen von IcedTea-Web benötigen:
aptitude build-dep icedtea-web
Alles weitere können wir als normaler User erledigen.
Zunächst laden wir den aktuellen Quellcode des
offiziellen Debian-Pakets herunter:
apt-get source icedtea-web
cd icedtea-web-1.1.4
Dann laden wir uns die Bugfix-Patches from IcedTea-
Projekt herunter und patchen damit direkt den Quelltext:
wget -O- http://icedtea.classpath.org/hg/release/icedtea-web-1.1/raw-rev/cdd0bbf399e8 | patch -p1
wget -O- http://icedtea.classpath.org/hg/release/icedtea-web-1.1/raw-rev/9f7d46c3314d | patch -p1
Leider schlägt das Patchen an zwei Dateien fehl,
nämlich an ChangeLog und NEWS. Das ist aber für
uns egal, hauptsache der eigentliche Programmcode
wird sauber gepatcht, und das wird er. Die
fehlgeschlagenen Patches können wir daher getrost
ignorieren und den hinterlassenen Müll wegräumen:
rm ChangeLog.rej ChangeLog.orig NEWS.rej NEWS.orig
Unangenehm ist, dass wir unsere Änderungen nochmals
extra in einen zusätzlichen Patch umwandeln müssen,
aber das erledigt folgendes Kommando automatisch
für uns:
dpkg-source --commit . juniperbugfix
Jetzt zählen wir nur noch die Versionsnummer hoch. Die
neue Versionsnummer wird dabei gerade so gewählet, dass
unser selbstgebautes Paket von zukünftigen (offiziellen)
icedtea-Paketen wieder überschrieben werden wird,
nicht jedoch vom aktellen. So passiert bei zukünftigen
Upgrades genau das, was wir haben wollen.
dch -l '.juniperbugfix' -m 'Juniper Bugfix'
Damit sind die Vorbereitungen abgeschlossen, und wir
können die Debian-Pakete bauen:
dpkg-buildpackage -b -uc -us
Fertig! Jetzt brauchen wir nur noch unsere neuen
Debian-Pakete zu installieren (als root):
dpkg -i ../icedtea*.deb
Anmerkungen
===========
Ich habe das unter Debian/Wheezy (Testing) getestet,
aber Debian/Squeeze (Stable) und Debian/Sid (Unstable)
sollten genauso funktionieren.
Damit können wir auf das Juniper-VPN mit einem freien
Browser über ein freies Plugin mit einem freien JDK
zugreifen!
Einziger Haken: Der vom Browser heruntergeladene
Java-Code des Juniper-Gateways ist natürlich nach
wie vor proprietär ...
Gruß
Volker
[1] Java-Browser-Plugin unter Debian
http://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/2011-December/067191.html
[2] Unable to connect to connect with Juniper VPN client
https://bugzilla.redhat.com/show_bug.cgi?id=586194
[3] Changesets im Development-Branch sowie im Release-1.1-Branch
http://icedtea.classpath.org/hg/icedtea-web/shortlog/320?revcount=2
http://icedtea.classpath.org/hg/release/icedtea-web-1.1/shortlog/278?revcount=2
[4] Building IcedTea-Web
http://icedtea.classpath.org/wiki/IcedTea-Web#Building_IcedTea-Web
--
Volker Grabsch
---<<(())>>---
Mehr Informationen über die Mailingliste linux-l