This commit formats authorizeHttpRequests blocks
to use the same parameter name and places the
reference on the same line as the parameter.
Issue gh-13067
CodeQL Advanced / codeql-analysis-call (push) Waiting to runDetails
CI / Build (17, ubuntu-latest) (push) Waiting to runDetails
CI / Build (17, windows-latest) (push) Waiting to runDetails
CI / Test Against Snapshots (17, 17) (push) Waiting to runDetails
CI / Test Against Snapshots (21-ea, 21) (push) Waiting to runDetails
CI / Deploy Artifacts (push) Blocked by required conditionsDetails
CI / Deploy Docs (push) Blocked by required conditionsDetails
CI / Deploy Schema (push) Blocked by required conditionsDetails
CI / Perform Release (push) Blocked by required conditionsDetails
CI / Send Notification (push) Blocked by required conditionsDetails
Deploy Docs / build (push) Has been cancelledDetails
This commit separates the authentication principal, the assertion details,
and the relying party tenant into separate components. This allows the
principal to be completely decoupled from how Spring Security triggers and
processes SLO.
Specifically, it adds Saml2AssertionAuthentication, a new authentication
implementation that allows an Object principal and a Saml2ResponseAssertionAccessor
credential. It also moves the relying party registration id from
Saml2AuthenticatedPrincipal to Saml2AssertionAuthentication.
As such, Saml2AuthenticatedPrincipal is now deprecated in favor of
placing its assertion components in Saml2ResponseAssertionAccessor and
the relying party registration id in Saml2AssertionAuthentication.
Closes gh-10820
Aside from simplifying configuration, this commit also makes it possible
to provide a response authentication converter that doesn't need the
NameID element to be present.
Closes gh-12136
Before, Spring Security's @Enable* annotations were meta-annotated with @Configuration.
While convenient, this is not consistent with the rest of the Spring projects and most notably
Spring Framework's @Enable annotations. Additionally, the introduction of support for
@Configuration(proxyBeanMethods=false) in Spring Framework provides a compelling reason to
remove @Configuration meta-annotation from Spring Security's @Enable annotations and allow
users to opt into their preferred configuration mode.
Closes gh-6613
Signed-off-by: Joshua Sattler <joshua.sattler@mailbox.org>