[Update] Incompatibility with Java 7 Update 45

Peter_Jodeleit
Crownpeak employee
Crownpeak employee
1 38 3,936

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.

38 Comments
graulich
I'm new here

Danke für die schnelle Info! Ist es möglich solche Informationen zukünftig aktiv via Mail zu bekommen?

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

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.

graulich
I'm new here

Danke für die schnelle Antwort! Smiley Happy Direkt gebucht!

gop1fe
I'm new here

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.

crusy
I'm new here

v4 scheint nicht betroffen zu sein:

update45.png

gop1fe
I'm new here

@crusy, bei mir geht es nicht egal mit welcher version! noch eine idee ? was meinst du mit v4 ?

sys_17.10.png

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

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.

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

Ein manueller Connect ist keine Option da wir über SSO connecten und die User ihre Passwörter nicht kennen.


                   

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.

king
I'm new here

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?

Radigewski
Occasional Collector
Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

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!


ckoenig
I'm new here

Hallo,

gibt es die Möglichkeit das Update zu deinstallieren/downgraden?

Habe im Netz dazu leider nichts gefunden und hier kocht die Stimmung.

mfg

Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Downgrade of Java:

  1. Uninstall version 7u45
  2. Download 7u25 from http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#j...
  3. Install 7u25

Please be aware that you need local administration rights to perform these steps.

ckoenig
I'm new here

thx

sambale
I'm new here

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

Peter_Jodeleit
Crownpeak employee
Crownpeak employee

[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.

klein
Crownpeak employee
Crownpeak employee

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 Smiley Sad

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.

king
I'm new here

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?

fischer_f
I'm new here

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

klein
Crownpeak employee
Crownpeak employee

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

fischer_f
I'm new here

@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.

klein
Crownpeak employee
Crownpeak employee

der oben beschriebene Weg zum Starten der Adminkonsole ist egentlich der Richtige und sollte funktionieren, ansonsten bitte an FirstSpirit Helpdesk wenden.

mmarm
Crownpeak employee
Crownpeak employee

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?

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

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.

Radigewski
Occasional Collector

gibt es einen neuen Status zu dem FirstSoirt Update?

Peter_Jodeleit
Crownpeak employee
Crownpeak employee

As already mentioned you can request a version with the workaound from the helpdesk.

An official release will be announced shortly.

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

Status update:

Yesterday the new FirstSpirit Version 5.0.424 was released!

This version is now compatible with Java 1.7u45 and above!

j_mueller
Elite Observer

What about the new Java 7u51 - is this version also campatible with the new FS-Release?

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

Yes. It is.

markusbucher
I'm new here

Will there be a new version for FS4 that fixes this annoying error also for these users?

Peter_Jodeleit
Crownpeak employee
Crownpeak employee

Please contact our helpdesk for the current status in FirstSpirit 4.2

weyand
I'm new here

I guess they will tell you that you can *buy* some update.

andre
I'm new here

Markus Weyand wrote:


                       

I guess they will tell you that you can *buy* some update.


                   

i am not sure but i guess you're wrong

weyand
I'm new here

That's what they told me at least. If you have better information, feel free to share it with us.

TimoMeister
Returning Responder

With FS Version 5.0.425.60000 and Java Version 1.7.0_51 it takes 1:30 minutes to change the project. Is that normal?

Andreas-Knoor
Crownpeak Employee
Crownpeak Employee

Please contact the FirstSpirit helpdesk for this issue.

markusbucher
I'm new here

Could someone give me the reason why the customers have to pay for this update? Will there ever be a free version? Will this fix be included in the next maintenance release for 4.2?