Use AssertingPartyMetadata
Issue gh-15394
This commit is contained in:
@@ -114,7 +114,7 @@ Java::
|
||||
----
|
||||
RelyingPartyRegistration relyingPartyRegistration = RelyingPartyRegistration.withRegistrationId("okta")
|
||||
// ...
|
||||
.assertingPartyDetails(party -> party
|
||||
.assertingPartyMetadata(party -> party
|
||||
// ...
|
||||
.wantAuthnRequestsSigned(false)
|
||||
)
|
||||
@@ -128,7 +128,7 @@ Kotlin::
|
||||
var relyingPartyRegistration: RelyingPartyRegistration =
|
||||
RelyingPartyRegistration.withRegistrationId("okta")
|
||||
// ...
|
||||
.assertingPartyDetails { party: AssertingPartyDetails.Builder -> party
|
||||
.assertingPartyMetadata { party: AssertingPartyMetadata.Builder -> party
|
||||
// ...
|
||||
.wantAuthnRequestsSigned(false)
|
||||
}
|
||||
@@ -154,7 +154,7 @@ Java::
|
||||
String metadataLocation = "classpath:asserting-party-metadata.xml";
|
||||
RelyingPartyRegistration relyingPartyRegistration = RelyingPartyRegistrations.fromMetadataLocation(metadataLocation)
|
||||
// ...
|
||||
.assertingPartyDetails((party) -> party
|
||||
.assertingPartyMetadata((party) -> party
|
||||
// ...
|
||||
.signingAlgorithms((sign) -> sign.add(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA512))
|
||||
)
|
||||
@@ -169,7 +169,7 @@ var metadataLocation = "classpath:asserting-party-metadata.xml"
|
||||
var relyingPartyRegistration: RelyingPartyRegistration =
|
||||
RelyingPartyRegistrations.fromMetadataLocation(metadataLocation)
|
||||
// ...
|
||||
.assertingPartyDetails { party: AssertingPartyDetails.Builder -> party
|
||||
.assertingPartyMetadata { party: AssertingPartyMetadata.Builder -> party
|
||||
// ...
|
||||
.signingAlgorithms { sign: MutableList<String?> ->
|
||||
sign.add(
|
||||
@@ -197,7 +197,7 @@ Java::
|
||||
----
|
||||
RelyingPartyRegistration relyingPartyRegistration = RelyingPartyRegistration.withRegistrationId("okta")
|
||||
// ...
|
||||
.assertingPartyDetails(party -> party
|
||||
.assertingPartyMetadata(party -> party
|
||||
// ...
|
||||
.singleSignOnServiceBinding(Saml2MessageBinding.POST)
|
||||
)
|
||||
@@ -211,7 +211,7 @@ Kotlin::
|
||||
var relyingPartyRegistration: RelyingPartyRegistration? =
|
||||
RelyingPartyRegistration.withRegistrationId("okta")
|
||||
// ...
|
||||
.assertingPartyDetails { party: AssertingPartyDetails.Builder -> party
|
||||
.assertingPartyMetadata { party: AssertingPartyMetadata.Builder -> party
|
||||
// ...
|
||||
.singleSignOnServiceBinding(Saml2MessageBinding.POST)
|
||||
}
|
||||
|
||||
@@ -484,7 +484,7 @@ public RelyingPartyRegistrationRepository relyingPartyRegistrations() throws Exc
|
||||
Saml2X509Credential credential = Saml2X509Credential.verification(certificate);
|
||||
RelyingPartyRegistration registration = RelyingPartyRegistration
|
||||
.withRegistrationId("example")
|
||||
.assertingPartyDetails(party -> party
|
||||
.assertingPartyMetadata(party -> party
|
||||
.entityId("https://idp.example.com/issuer")
|
||||
.singleSignOnServiceLocation("https://idp.example.com/SSO.saml2")
|
||||
.wantAuthnRequestsSigned(false)
|
||||
@@ -508,7 +508,7 @@ open fun relyingPartyRegistrations(): RelyingPartyRegistrationRepository {
|
||||
val credential: Saml2X509Credential = Saml2X509Credential.verification(certificate)
|
||||
val registration = RelyingPartyRegistration
|
||||
.withRegistrationId("example")
|
||||
.assertingPartyDetails { party: AssertingPartyDetails.Builder ->
|
||||
.assertingPartyMetadata { party: AssertingPartyMetadata.Builder ->
|
||||
party
|
||||
.entityId("https://idp.example.com/issuer")
|
||||
.singleSignOnServiceLocation("https://idp.example.com/SSO.saml2")
|
||||
@@ -699,7 +699,7 @@ RelyingPartyRegistration relyingPartyRegistration = RelyingPartyRegistration.wit
|
||||
.entityId("{baseUrl}/{registrationId}")
|
||||
.decryptionX509Credentials(c -> c.add(relyingPartyDecryptingCredential()))
|
||||
.assertionConsumerServiceLocation("/my-login-endpoint/{registrationId}")
|
||||
.assertingPartyDetails(party -> party
|
||||
.assertingPartyMetadata(party -> party
|
||||
.entityId("https://ap.example.org")
|
||||
.verificationX509Credentials(c -> c.add(assertingPartyVerifyingCredential()))
|
||||
.singleSignOnServiceLocation("https://ap.example.org/SSO.saml2")
|
||||
@@ -718,7 +718,7 @@ val relyingPartyRegistration =
|
||||
c.add(relyingPartyDecryptingCredential())
|
||||
}
|
||||
.assertionConsumerServiceLocation("/my-login-endpoint/{registrationId}")
|
||||
.assertingPartyDetails { party -> party
|
||||
.assertingPartyMetadata { party -> party
|
||||
.entityId("https://ap.example.org")
|
||||
.verificationX509Credentials { c -> c.add(assertingPartyVerifyingCredential()) }
|
||||
.singleSignOnServiceLocation("https://ap.example.org/SSO.saml2")
|
||||
@@ -730,7 +730,7 @@ val relyingPartyRegistration =
|
||||
[TIP]
|
||||
====
|
||||
The top-level metadata methods are details about the relying party.
|
||||
The methods inside `assertingPartyDetails` are details about the asserting party.
|
||||
The methods inside `AssertingPartyMetadata` are details about the asserting party.
|
||||
====
|
||||
|
||||
[NOTE]
|
||||
|
||||
@@ -339,7 +339,7 @@ It's common to need to set other values in the `<saml2:LogoutRequest>` than the
|
||||
|
||||
By default, Spring Security will issue a `<saml2:LogoutRequest>` and supply:
|
||||
|
||||
* The `Destination` attribute - from `RelyingPartyRegistration#getAssertingPartyDetails#getSingleLogoutServiceLocation`
|
||||
* The `Destination` attribute - from `RelyingPartyRegistration#getAssertingPartyMetadata#getSingleLogoutServiceLocation`
|
||||
* The `ID` attribute - a GUID
|
||||
* The `<Issuer>` element - from `RelyingPartyRegistration#getEntityId`
|
||||
* The `<NameID>` element - from `Authentication#getName`
|
||||
@@ -424,7 +424,7 @@ It's common to need to set other values in the `<saml2:LogoutResponse>` than the
|
||||
|
||||
By default, Spring Security will issue a `<saml2:LogoutResponse>` and supply:
|
||||
|
||||
* The `Destination` attribute - from `RelyingPartyRegistration#getAssertingPartyDetails#getSingleLogoutServiceResponseLocation`
|
||||
* The `Destination` attribute - from `RelyingPartyRegistration#getAssertingPartyMetadata#getSingleLogoutServiceResponseLocation`
|
||||
* The `ID` attribute - a GUID
|
||||
* The `<Issuer>` element - from `RelyingPartyRegistration#getEntityId`
|
||||
* The `<Status>` element - `SUCCESS`
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
[[servlet-saml2login-metadata]]
|
||||
= Saml 2.0 Metadata
|
||||
|
||||
Spring Security can <<parsing-asserting-party-metadata,parse asserting party metadata>> to produce an `AssertingPartyDetails` instance as well as <<publishing-relying-party-metadata,publish relying party metadata>> from a `RelyingPartyRegistration` instance.
|
||||
Spring Security can <<parsing-asserting-party-metadata,parse asserting party metadata>> to produce an `AssertingPartyMetadata` instance as well as <<publishing-relying-party-metadata,publish relying party metadata>> from a `RelyingPartyRegistration` instance.
|
||||
|
||||
[[parsing-asserting-party-metadata]]
|
||||
== Parsing `<saml2:IDPSSODescriptor>` metadata
|
||||
|
||||
You can parse an asserting party's metadata xref:servlet/saml2/login/overview.adoc#servlet-saml2login-relyingpartyregistrationrepository[using `RelyingPartyRegistrations`].
|
||||
|
||||
When using the OpenSAML vendor support, the resulting `AssertingPartyDetails` will be of type `OpenSamlAssertingPartyDetails`.
|
||||
When using the OpenSAML vendor support, the resulting `AssertingPartyMetadata` will be of type `OpenSamlAssertingPartyDetails`.
|
||||
This means you'll be able to do get the underlying OpenSAML XMLObject by doing the following:
|
||||
|
||||
[tabs]
|
||||
@@ -18,7 +18,7 @@ Java::
|
||||
[source,java,role="primary"]
|
||||
----
|
||||
OpenSamlAssertingPartyDetails details = (OpenSamlAssertingPartyDetails)
|
||||
registration.getAssertingPartyDetails();
|
||||
registration.getAssertingPartyMetadata();
|
||||
EntityDescriptor openSamlEntityDescriptor = details.getEntityDescriptor();
|
||||
----
|
||||
|
||||
@@ -27,7 +27,7 @@ Kotlin::
|
||||
[source,kotlin,role="secondary"]
|
||||
----
|
||||
val details: OpenSamlAssertingPartyDetails =
|
||||
registration.getAssertingPartyDetails() as OpenSamlAssertingPartyDetails
|
||||
registration.getAssertingPartyMetadata() as OpenSamlAssertingPartyDetails
|
||||
val openSamlEntityDescriptor: EntityDescriptor = details.getEntityDescriptor()
|
||||
----
|
||||
======
|
||||
@@ -76,8 +76,7 @@ public class RefreshableRelyingPartyRegistrationRepository
|
||||
}
|
||||
|
||||
private RelyingPartyRegistration applyRelyingParty(AssertingPartyMetadata metadata) {
|
||||
AssertingPartyDetails details = (AssertingPartyDetails) metadata;
|
||||
return RelyingPartyRegistration.withAssertingPartyDetails(details)
|
||||
return RelyingPartyRegistration.withAssertingPartyMetadata(metadata)
|
||||
// apply any relying party configuration
|
||||
.build();
|
||||
}
|
||||
@@ -110,8 +109,8 @@ class RefreshableRelyingPartyRegistrationRepository : IterableRelyingPartyRegist
|
||||
}
|
||||
|
||||
private fun applyRelyingParty(metadata: AssertingPartyMetadata): RelyingPartyRegistration {
|
||||
val details: AssertingPartyDetails = metadata as AssertingPartyDetails
|
||||
return RelyingPartyRegistration.withAssertingPartyDetails(details)
|
||||
val details: AssertingPartyMetadata = metadata as AssertingPartyMetadata
|
||||
return RelyingPartyRegistration.withAssertingPartyMetadata(details)
|
||||
// apply any relying party configuration
|
||||
.build()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user