|
@@ -16,6 +16,7 @@
|
|
|
|
|
|
package org.springframework.security.config.saml2;
|
|
|
|
|
|
+import jakarta.servlet.http.HttpServletRequest;
|
|
|
import okhttp3.mockwebserver.MockResponse;
|
|
|
import okhttp3.mockwebserver.MockWebServer;
|
|
|
import org.junit.jupiter.api.AfterEach;
|
|
@@ -23,16 +24,21 @@ import org.junit.jupiter.api.Test;
|
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.core.convert.converter.Converter;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.MediaType;
|
|
|
+import org.springframework.mock.web.MockHttpServletRequest;
|
|
|
import org.springframework.security.config.test.SpringTestContext;
|
|
|
import org.springframework.security.config.test.SpringTestContextExtension;
|
|
|
import org.springframework.security.saml2.provider.service.registration.InMemoryRelyingPartyRegistrationRepository;
|
|
|
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
|
|
|
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
|
|
|
import org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding;
|
|
|
+import org.springframework.security.saml2.provider.service.web.authentication.OpenSaml4AuthenticationRequestResolver;
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
|
|
|
/**
|
|
|
* Tests for {@link RelyingPartyRegistrationsBeanDefinitionParser}.
|
|
@@ -118,6 +124,7 @@ public class RelyingPartyRegistrationsBeanDefinitionParserTests {
|
|
|
// @formatter:on
|
|
|
|
|
|
@Autowired
|
|
|
+ @Qualifier("registrations")
|
|
|
private RelyingPartyRegistrationRepository relyingPartyRegistrationRepository;
|
|
|
|
|
|
public final SpringTestContext spring = new SpringTestContext(this);
|
|
@@ -268,6 +275,19 @@ public class RelyingPartyRegistrationsBeanDefinitionParserTests {
|
|
|
"http://www.w3.org/2001/04/xmldsig-more#rsa-sha384");
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void parseWhenRelayStateResolverThenUses() {
|
|
|
+ this.spring.configLocations(xml("RelayStateResolver")).autowire();
|
|
|
+ Converter<HttpServletRequest, String> relayStateResolver = this.spring.getContext().getBean(Converter.class);
|
|
|
+ OpenSaml4AuthenticationRequestResolver authenticationRequestResolver = this.spring.getContext()
|
|
|
+ .getBean(OpenSaml4AuthenticationRequestResolver.class);
|
|
|
+ MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
+ request.setRequestURI("/saml2/authenticate/one");
|
|
|
+ request.setServletPath("/saml2/authenticate/one");
|
|
|
+ authenticationRequestResolver.resolve(request);
|
|
|
+ verify(relayStateResolver).convert(request);
|
|
|
+ }
|
|
|
+
|
|
|
private static MockResponse xmlResponse(String xml) {
|
|
|
return new MockResponse().setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE).setBody(xml);
|
|
|
}
|