Hello CAS community,
I’ve run into an interoperability issue while integrating Apereo CAS 7.0 with SimpleSAMLphp and wanted to ask for clarification and/or guidance.
To note up front: I’m aware that CAS 7.0 is out of date, and part of this inquiry is to determine whether this behavior is known, intentional, configurable, or addressed in more recent CAS versions.
The issue relates to authentication timestamps and XML Schema dateTime formatting. SimpleSAMLphp’s xml-common module performs strict validation of xs:dateTime values. Per XML Schema Part 2: Datatypes, §3.2.7.2, the fractional seconds component must not contain trailing zeros.
In practice, I’m observing CAS 7.0 emit authentication timestamps with nanosecond-level precision that includes trailing zeros, for example:
2026-03-31T19:41:01.457286900Z
In this case, the fractional seconds (.457286900) end with trailing zeros, which causes schema validation to fail in SimpleSAMLphp. The presence of trailing zeros at higher precision appears to violate the XML Schema dateTime lexical rules as interpreted by SimpleSAMLphp.
Because of this, authentication fails unless downstream XML validation is relaxed or custom timestamp normalization logic is introduced.
I’m hoping to better understand a few things:
- Is emitting high‑precision timestamps with trailing zeros expected or intentional behavior in CAS 7.0?
- Has this behavior changed, been normalized, or become configurable in newer CAS versions?
- Is CAS generally designed to rely on consumer-side tolerance for xs:dateTime parsing rather than strict XML Schema compliance?
I recognize that many XML parsers are lenient in this area, but SimpleSAMLphp enforces the specification strictly, which turns this into a real interoperability issue.
Any insight, historical context, or pointers to configuration options or fixes—especially in newer CAS releases—would be greatly appreciated.
Thanks for your time,
Al