Välkomna till Sunetdagarna 1-4 april på LNU i Växjö.

För program och anmälan se Sunetdagarna våren 2019.

Migration från Oracle Java 8 till OpenJDK 8 på en Shibboleth Identity Provider v3.3.2 (och nyare)

Följande har testats på Centos 7 men gäller mestadels för Ubuntu/Debian också. Om du kör Windows så kan man ta bort Oracle Java och installerar OpenJDK från https://jdk.java.net/11/. Information från Shibboleth om IdP system requirements: https://wiki.shibboleth.net/confluence/display/IDP30/SystemRequirements

Vi rekommenderar att man testa på en test-IdP innan det göras på en produktion-IdP!

Stänga av Jetty:

sudo -i
service
jetty stop

Ta bort gamla Java från systemets alternatives:

alternatives --remove ControlPanel /usr/java/default/bin/ControlPanel
alternatives --remove java /usr/java/default/bin/java
alternatives --remove javaws /usr/java/default/bin/javaws
alternatives --remove jcontrol /usr/java/default/bin/jcontrol
alternatives --remove jjs /usr/java/default/bin/jjs
alternatives --remove keytool /usr/java/default/bin/keytool
alternatives --remove orbd /usr/java/default/bin/orbd
alternatives --remove pack200 /usr/java/default/bin/pack200
alternatives --remove policytool /usr/java/default/bin/policytool
alternatives --remove rmid /usr/java/default/bin/rmid
alternatives --remove rmiregistry /usr/java/default/bin/rmiregistry
alternatives --remove servertool /usr/java/default/bin/servertool
alternatives --remove tnameserv /usr/java/default/bin/tnameserv
alternatives --remove unpack200 /usr/java/default/bin/unpack200
rm /usr/java/default
rm /usr/java/latest
chmod 000 /usr/java/*

I Debian heter alternatives update-alternatives

Kontrollera att alla alternatives för /usr/java/default/... är nu borta (alternatives --list). Ta bort eventuella $PATHs till /usr/java/default samt JAVA_HOME från roots loginprofil (.bashrc).

Installera OpenJDK

De flesta vendors (Red Hat/Ubuntu) paketerar OpenJDK som man kan installera via yum eller apt-get. Shibboleth konsortium ger dock enbart stöd för standard OpenJDK så man måste bestämma om man vill köra med standard OpenJDK eller OS-levererad. Om man stötter på ett Java problem framöver så kan man behöva byta till standard OpenJDK för att få stöd från konsortiet via SWAMID1. SWAMID operations anser dock att risken är väldigt liten och att det är bättre att använda OS-levererad med avseende på automatiserad uppdateringar.

Red Hat kommer att ge stöd för OpenJDK 8 till 2023. Om du använder Ubuntu så kanske OpenJDK 11 är ett bättre val eftersom OpenJDK 8 finns enbart i universe. 

1 För full support på Shibboleth måste ni vara medlemmar i Shibboleth-konsortiet (https://www.shibboleth.net/consortium/benefits/). Sunet är medlem av konsortiet via NORDUnet och SWAMID Operations kan hjälpa till begränsat med supportfrågor.


yum install java-1.8.0-openjdk

Debian

apt-get install openjdk-8-jdk-headless

Ubuntu

apt-get install openjdk-11-jdk-headless

Kontrollera Java version...

java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

...samt alternatives konfig:

alternatives --list
java auto /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/bin/java
jre_openjdk auto /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
jre_1.8.0 auto /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
jre_1.8.0_openjdk auto /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64

Debian varian då den saknar alternatives 

ls -l /etc/alternatives/ | grep java


  Uppdatera /etc/default/jetty till:

export JAVA_HOME=/etc/alternatives/jre_1.8.0
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export JAVA_OPTIONS="-Didp.home=/opt/shibboleth-idp -Xmx4096M"
export JETTY_HOME=/opt/jetty
export JETTY_BASE=/opt/jetty/jetty-base
export JETTY_USER=jetty

Debian har även här en annan path....

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre


Starta Jetty och utföra tester...

service jetty start

Cleanup

rm -r /usr/java/*
  • No labels