Nach einiger Zeit, habe ich mal wieder das SecurityToken-Projekt ausgegraben, um das in einem aktuellen Projekt zu verwenden. Als ich das Projekt aber anstieß und mich einloggte, erhielt ich einige Fehlermeldungen. Ich wusste nicht wo diese herkamen und ging deshalb den Code Step-By-Step im Debugger durch. Faszinierenderweise trat der Fehler nicht mehr auf und alles funktionierte anständig. Darum lud ich die Seite erneut und wieder schien alles problemlos zu laufen. Deshalb ging ich zuerst einmal von einem Cache-Problem aus und vergaß das Problem.
Einige Zeit später hatte ich meine Cookies gelöscht und wollte mir ein neues Token ausstellen - doch wieder erhielt ich einige Fehlermeldungen - doch wiederum verschwand der Fehler beim durchsteppen.
Daraufhin beschloss ich über mehrere Stellen im Code Breakpoints zu verteilen und sprang wesentlich schneller von einem zum nächsten, um die Stelle des Fehlers besser eingrenzen zu können. Als ich dann an der entsprechenden Stelle ankam, fand ich folgende Fehlermeldung vor:
"Das SamlToken ist zeitlich nicht gültig. Die aktuelle Zeit "14.05.2008 11:29:21" liegt außerhalb der effektiven Zeit "14.05.2008 11:29:59" und der Ablaufzeit "14.06.2008 11:29:59" des Tokens.
Was war passiert? Zuerst dachte ich, ich hätte versehentlich ein Problem in der Datumsberechnung, bis mir auffiel, dass das Token erst einige Sekunden NACH dem Ausstellen gültig wurde. Doch warum? War das eine eingebaute Funktion?
Nach kurzer Suche nach der Fehlermeldung fand ich einen Beitrag im Internet, der das selbe Problem hatte. Er hatte sich aber die Frage schon selbst beantwortet mit: "Ich stelle dann mal die Zeit meines Servers um" ... richtig ... der Dev-Server und mein PC hatten einen Zeitunterschied von ca. 30 Sekunden - deshalb war das Token NOCH nicht gültig, als es bei mir ankam - und deshalb funktionierte das durchsteppen immer, da dies die benötigte Zeit zum gültig werden überschritt, bis ich die entsprechende Stelle erreicht hatte.