Author: Peter_Jodeleit
Publication Date: 10/16/2013 16:18
Update:
With current versions of FirstSpirit we implemented a workaround, everything is back to normal.
Versions including the fix:
- 5.0.420 and newer
- 4.2.500 and newer (next regular release currently scheduled for July 2014)
Please keep in mind that still JDK-7 for FirstSpirit 4.2 is not supported, i.e. you may encounter bugs with this combination we will and cannot fix. Upgrade to FirstSpirit 5 is recommended.
With todays release of Java 7 Update 75 (short 7u45) start of the FirstSpirit Java-Client is no longer possible. All versions of FirstSpirit are affected!
This is due the fact that Oracle dropped the support of providing parameters in JNLP-files. This changed without prior notice and is not even mentioned in the release notes.
Do not update to Java 7 Update 45!
We are investigating this issue and keep you informed.
=== German version ===
Die heute veröffentlichte Version Java 7 Update 45 (kurz 7u45) verhindert den Start des FirstSpirit Java-Clients. Es sind alle FirstSpirit-Versionen betroffen!
Grund dafür ist, dass Oracle die Möglichkeit ausgebaut hat, Parameter über die JNLP-Datei zu übergeben. Diese Änderung war nicht angekündigt und wird in den "release notes" nicht einmal erwähnt.
Führen Sie keine Aktualisierung auf Java 7 Update 45 aus!
Wir untersuchen das Problem und halten Sie auf dem Laufenden.
Kommentare
38 Kommentare
Danke für die schnelle Info! Ist es möglich solche Informationen zukünftig aktiv via Mail zu bekommen?
Das geht heute schon. Einfach hier im Blog rechts oben in der Box den EMail-Notifikations-Button drücken. Dann kommen alle Meldungen dieses Blogs per Mail an.
Danke für die schnelle Antwort! :smileyhappy: Direkt gebucht!
Wann gibt es eine Status Update ? Das Thema ist sehr kritisch bei uns, da u45 bei uns aus Sicherheitsgründen zeitnah eingespielt wird.
Ein manueller Connect ist keine Option da wir über SSO connecten und die User ihre Passwörter nicht kennen.
v4 scheint nicht betroffen zu sein:
@crusy, bei mir geht es nicht egal mit welcher version! noch eine idee ? was meinst du mit v4 ?
Es handelt sich hier um ein JDK-Problem, welches unabhängig von der FirstSpirit-Version ist.
Damit sind sowohl FirstSpirit 4.2 als 5.0 betroffen, wobei zu beachten ist, dass unter FirstSpirit 4.2 ohnehin kein Java 7 unterstützt wird.
Die technische Voraussetzung für ein SSO (dynamische Parameterübergabe von User-Credentials für die JNLP-Parametrisierung beim Java Webstart) ist exakt die Funktionalität, die Oracle im 7u45-Update entfernt bzw. stark beschnitten hat.
Somit muss nun ein neues Verfahren für die dynamische Übergabe von Parametern implementiert werden. Wann dieses Verfahren in welcher FirstSpirit-Version zur Verfügung stehen wird, entscheidet sich in den nächsten Tagen, sobald die gerade laufende technische Evaluierung abgeschlossen ist.
Wichtig:
In jedem Fall wird ein Update auf eine neue (noch zu erstellende) FirstSpirit 5.0er Version notwendig sein, um einen Programmstart unter Java 7u45 zu ermöglichen.
Gibt es bereits einen BUG-Report bei Oracle? Wenn, ja: unter welchem Link?
Schließlich möchten wir Oracle von dem Problem in Kenntnis setzen um:
- ggf. technische Workarounds in Erfahrung zu bringen
- oder eine schnelle Beseitigung anzustoßen
Verstanden haben wir, dass mit Java 7u45 keine Parameter mehr dynamisch an WebStart über JNLP-Dateien übergeben werden können. So kommt es etwa zu einer "NumberFormatException" bei der Auflösung des Ports. Die bisherige Struktur der JNLP-Datei:
<jnlp spec="1.0+" codebase="https://rb-wcms4.xx.xxxxx.xxx">
...
<resources os="Windows">
...
<property name="host" value="rb-wcms4.de.bosch.com"/>
...
<property name="port" value="80"/>
...
</resources>
Denkbar wäre doch auch, wenn die "FirstSpirit.jsp" folgende Struktur generieren würde (ohne explizite Parameterinitialisierung):
<jnlp spec="1.0+" codebase="https://rb-wcms4.xx.xxxxx.xxx:443">
Würde dieser Ansatz helfen?
https://bugs.openjdk.java.net/browse/JDK-8023821 vielleicht hilft das?
After a detailed evaluation of the problem we were able to implement an alternative way of parameter transfer in conjunction with Java 7u45.
This solution will be part of the next FirstSpirit 5.0 release (planned for end of November 2013).
If you want to test this 7u45 support in your local environment please contact our helpdesk to get access to this 5.0 beta version.
Please notice that this is an untested beta-version of FirstSpirit that must not be used in production environments!
Hallo,
gibt es die Möglichkeit das Update zu deinstallieren/downgraden?
Habe im Netz dazu leider nichts gefunden und hier kocht die Stimmung.
mfg
Downgrade of Java:
Please be aware that you need local administration rights to perform these steps.
thx
Hallo zusammen,
das Problem ist Folgendes und kann auch nur von e-Spirit gelöst werden - Lösung passt aber für FS4 als auch FS5.
Custom Properties in JNLP files gelten seit u45 generell als "not secure" und werden demnach per default nicht mehr weiter gegeben.
Damit diese wieder ankommen (bzw. als secure eingestuft werden) gibt es mehrere Möglichkeiten - ich erwähne mal die zwei Low-Hanging-Fruits (bei beiden Möglichkeiten muss die JAR file neu signiert werden - was nur espirit machen kann - der zweite Ansatz birgt Probleme für uns).
1. Anpassung der Property Keys
Man benennt alle keys der custom properties um in "jnlp.*". Und passt dann den Code, der die Properties ausliest dementsprechend an.
Beispiel:
Also:
<property name="host" value="somehost.com"/>
In
<property name="jnlp.host" value="somehost.com"/>
Und passt dann den Code entsprechend an, also System.getProperty("jnlp.host");
Hier müssen die Klassen der JAR neu kompiliert werden! Bzw. die JAR neu gebaut werden.
2. DIESE LÖSUNG WÄRE FÜR UNS ABER UNPRAKTIKABEL, DA DIE JNLP ZUR LAUFZEIT GENERIERT WIRD!
Man signiert die JNLP File in dem man diese mit in die JAR Datei packt.
Dazu packt man die JNLP file als JNLP-INF/APPLICATION.JNLP mit in die JAR file. Da es sich hier um eine Änderung der JAR file handelt, muss auch hier die JAR neu signiert werden - eine Neukompilierung der Class-Files ist demnach nicht nötig.
In beiden Fällen muss hier e-Spirit eingreifen, um das Problem zu lösen.
MfG
[For english readers: The comment by Sascha Sambale explains the 'workarounds' Oracle suggests in one of the numerous bug reports you can find online for this issue]
The next Java security release is already scheduled (7u51, release date January 2014). For this release we already know (at least partly) what to expect. And we want to prepare a solution which is still functional in February 2014.
Um das Verbindungsfenster zu übergehen, kann man den JavaClient natürlich auch direkt über ein batch-file (*.bat) starten:
----------------
{JRE_PATH}\bin\java -Xmx512m -Dhost=<host> -Dport=<port> -Dmode=HTTP -jar {FS_JAR_PATH}\fs-client.jar
----------------
<host> = FirstSpirit host, e.g. myserver.mydomain.de
<port> = Port, e.g. 80
Zusätzlich kann noch das Projekt übergeben werden, damit die Auswahl des Projektes entfällt:
-DprojectId=1234 (1234 ist die ID des gewünschten Projektes)
Desweiteren kann natürlich der Proxy oder auch der Proxy für den internen Browser übergeben werden:
-Dinlinebrowser.httpproxy=127.0.0.1:6666
Auch die Logindaten können direkt übergeben werden:
-Dlogin.user=myFSloginname
-Dlogin.password=myFSpassword
"-Dlogin.ticket" kann man zwar auch übergeben, aber dieses muss natürlich gültig sein :smileysad:
Weitere mögliche Parameter z.B. "-Dlocale=de" damit der Client in DE startet und nicht in der Sprache des Betriebssystems, sind in der Admindoku und in der FirstSpirit.jnlp (diese kann man über das Kontextmenü auf der FS-Startseite im Browser lokal abspeichern) zu finden.
Good idea,
the only problem we see: what about SSO mechanisms we use heavily? The problem, the "login.ticket" is generated by a FirstSpirit filter within the "fs4root" web application.
Any hints there?
Hallo zusammen.
der Workaround von klein funktioniert bei mir auch.
Ich frage mich allerdings, wie man den gleichen Fix auch für die Admin-Konsole hinbekommt.
Hat hier vielleicht jmd. einen Tipp zur Hand?
Ich konnte aus den jnlp-Dateien leider keine brauchbare Information ziehen.
Danke im Voraus
Admin-Client:
----------------------
{JRE_PATH}\bin\java -Dhost=<host> -Dport=<port> -Dmode=HTTP -cp {FS_JAR_PATH}\fs-client.jar de.espirit.firstspirit.admin.gui.CMSAdminConsole
@klein:
Danke für den Hinweis.
Leider bekomme ich immer die Fehlermeldung, dass die Hauptklasse nicht geladen werden kann.
Ich habe dann de.espirit.firstspirit.admin.gui.CMSAdminConsole gegen das getauscht, was bei "application-desc main-class" in der jnlp der Admin-Console steht. Auch das führte nicht zum Erfolg.
Hast Du noch weitere Ansätze? Das wäre Klasse.
Danke schonmal bis hierhin.
der oben beschriebene Weg zum Starten der Adminkonsole ist egentlich der Richtige und sollte funktionieren, ansonsten bitte an FirstSpirit Helpdesk wenden.
Gehe ich recht in der Annahmen, dass es für 4.2, aufgrund der nicht vorhandenen Unterstützung von Java 7, kein Update bzgl. der alternativen Parameterübergabe geben wird?
Status update:
The local tests of the new way of parameter transfer in conjunction with Java 7u45 were successful.
Furthermore we did not get any negative feedback from our clients that have tested the mentioned beta implementation.
Therefore we will make these changes available in the next official FirstSpirit 5.0 release.
The release date is probably end of November.
Clients that are trying to use FirstSpirit 4.2 in conjunction with JDK 1.7u45 (which is not supported) are kindly requested to contact our helpdesk to discuss their individual situation.
gibt es einen neuen Status zu dem FirstSoirt Update?
As already mentioned you can request a version with the workaound from the helpdesk.
An official release will be announced shortly.
Status update:
Yesterday the new FirstSpirit Version 5.0.424 was released!
This version is now compatible with Java 1.7u45 and above!
What about the new Java 7u51 - is this version also campatible with the new FS-Release?
Yes. It is.
Will there be a new version for FS4 that fixes this annoying error also for these users?
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.