mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-05-31 01:02:14 +00:00
Merge branch '6.1.x'
This commit is contained in:
commit
4ca7e842f0
@ -200,7 +200,7 @@ public final class OpenSamlLogoutRequestValidatorParametersResolver
|
||||
}
|
||||
|
||||
private String inflateIfRequired(HttpServletRequest request, byte[] b) {
|
||||
if (HttpMethod.GET.equals(request.getMethod())) {
|
||||
if (HttpMethod.GET.matches(request.getMethod())) {
|
||||
return Saml2Utils.samlInflate(b);
|
||||
}
|
||||
return new String(b, StandardCharsets.UTF_8);
|
||||
|
@ -115,6 +115,21 @@ public final class OpenSamlLogoutRequestValidatorParametersResolverTests {
|
||||
assertThat(parameters.getLogoutRequest().getSamlRequest()).isEqualTo(encoded);
|
||||
}
|
||||
|
||||
@Test
|
||||
void saml2LogoutResolveWhenUnauthenticatedGetRequestThenInflates() {
|
||||
String registrationId = this.registration.getRegistrationId();
|
||||
MockHttpServletRequest request = get("/logout/saml2/slo");
|
||||
String logoutRequest = serialize(TestOpenSamlObjects.logoutRequest());
|
||||
String encoded = Saml2Utils.samlEncode(Saml2Utils.samlDeflate(logoutRequest));
|
||||
request.setParameter(Saml2ParameterNames.SAML_REQUEST, encoded);
|
||||
given(this.registrations.findUniqueByAssertingPartyEntityId(TestOpenSamlObjects.ASSERTING_PARTY_ENTITY_ID))
|
||||
.willReturn(this.registration);
|
||||
Saml2LogoutRequestValidatorParameters parameters = this.resolver.resolve(request, null);
|
||||
assertThat(parameters.getAuthentication()).isNull();
|
||||
assertThat(parameters.getRelyingPartyRegistration().getRegistrationId()).isEqualTo(registrationId);
|
||||
assertThat(parameters.getLogoutRequest().getSamlRequest()).isEqualTo(encoded);
|
||||
}
|
||||
|
||||
@Test
|
||||
void saml2LogoutRegistrationIdResolveWhenNoMatchingRegistrationIdThenSaml2Exception() {
|
||||
MockHttpServletRequest request = post("/logout/saml2/slo/id");
|
||||
@ -129,6 +144,12 @@ public final class OpenSamlLogoutRequestValidatorParametersResolverTests {
|
||||
return request;
|
||||
}
|
||||
|
||||
private MockHttpServletRequest get(String uri) {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
||||
request.setServletPath(uri);
|
||||
return request;
|
||||
}
|
||||
|
||||
private String serialize(XMLObject object) {
|
||||
try {
|
||||
Marshaller marshaller = XMLObjectProviderRegistrySupport.getMarshallerFactory().getMarshaller(object);
|
||||
|
Loading…
x
Reference in New Issue
Block a user