Troubleshooting

  • Shibboleth Wiki: Seite ist im Aufbau begriffen
  • Loglevel hochsetzen und Appender definieren in conf/logback.xml (wird alle 5 Minuten neu geladen), siehe auch im Shibboleth Wiki unter LoggingConfiguration und AdvancedLogging.
  • Werte in Property Files: Trailing Space Characters (Blank) unbedingt vermeiden. Ein Blank hinter einem Passwort macht dieses ungültig!

Bei Java-Installationen, die nicht aus dem Sun/Oracle-Kontext stammen, muss ggf. eine alternative Xerces Bean Class konfiguriert werden:

/opt/shibboleth-idp/conf/idp.properties
# ... 
idp.xml.securityManager=org.apache.xerces.util.SecurityManager
# ...

Ohne zusätzliche Konfiguration (ORM Workaround), wie beschrieben von den Schweizer Kollegen https://www.switch.ch/aai/guides/idp/installation/#ormxmlworkaround speichert PostgeSQL die Werte als 'large Objects' in der Systemtabelle und schreibt in die Spalte 'value' nur die Link ID.

Um die korrekte Funktion sicher zu stellen, muss obiger Workaround dringend angewendet werden.

Leider sind hinterher die Daten der Datenbank nicht mehr kompatibel. D.h. vor dem Neustart des IdP müssen die Werte der Spalte value in der Tabelle storagerecords konvertiert werden.

Eine Möglichkeit geht wie folgt direkt auf der schon vorhandenen Datenbank:

DB als postgres Nutzer öffnen, da die Daten in der Systemtabelle pg_largeobject liegen:

psql -Upostgres shibboleth

Temporär werden die Werte decodiert mit den ID's in eine neue Tabelle geschrieben. Diese neue Tabelle gehört postgres, daher evtl. danach den Owner aktualisieren:

shibboleth=> create table new_table as (select context, id, value, encode(data, 'escape') as new_value from storagerecords left join pg_largeobject on oid(value) = loid);
shibboleth=> alter table new_table owner to shibboleth;

Jetzt anhand der values die ID's durch deren Inhalte aus der neuen Tabelle ersetzen:

shibboleth=> update storagerecords set value = new_table.new_value from new_table where storagerecords.value = new_table.value;

Die Temporäre Tabelle wieder löschen:

shibboleth=> drop table new_table;

Danach den IdP (tomcat) neu starten. Die Session und Attribute-Constent Daten sind weiterhin (wieder) verfügbar.

  • Zuletzt geändert: vor 2 Jahren