|  | @@ -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);
 | 
	
		
			
				|  |  |  	}
 |