|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2021 the original author or authors.
|
|
|
+ * Copyright 2002-2022 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -25,6 +25,8 @@ import org.springframework.mock.web.MockHttpServletResponse;
|
|
|
import org.springframework.security.authentication.TestingAuthenticationToken;
|
|
|
import org.springframework.security.core.Authentication;
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
+import org.springframework.security.core.context.SecurityContextHolderStrategy;
|
|
|
+import org.springframework.security.core.context.SecurityContextImpl;
|
|
|
import org.springframework.security.saml2.core.Saml2Error;
|
|
|
import org.springframework.security.saml2.core.Saml2ParameterNames;
|
|
|
import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutRequestValidator;
|
|
@@ -48,6 +50,8 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|
|
*/
|
|
|
public class Saml2LogoutRequestFilterTests {
|
|
|
|
|
|
+ SecurityContextHolderStrategy securityContextHolderStrategy = mock(SecurityContextHolderStrategy.class);
|
|
|
+
|
|
|
RelyingPartyRegistrationResolver relyingPartyRegistrationResolver = mock(RelyingPartyRegistrationResolver.class);
|
|
|
|
|
|
Saml2LogoutRequestValidator logoutRequestValidator = mock(Saml2LogoutRequestValidator.class);
|
|
@@ -94,6 +98,8 @@ public class Saml2LogoutRequestFilterTests {
|
|
|
RelyingPartyRegistration registration = TestRelyingPartyRegistrations.full()
|
|
|
.assertingPartyDetails((party) -> party.singleLogoutServiceBinding(Saml2MessageBinding.POST)).build();
|
|
|
Authentication authentication = new TestingAuthenticationToken("user", "password");
|
|
|
+ given(this.securityContextHolderStrategy.getContext()).willReturn(new SecurityContextImpl(authentication));
|
|
|
+ this.logoutRequestProcessingFilter.setSecurityContextHolderStrategy(this.securityContextHolderStrategy);
|
|
|
SecurityContextHolder.getContext().setAuthentication(authentication);
|
|
|
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/logout/saml2/slo");
|
|
|
request.setServletPath("/logout/saml2/slo");
|
|
@@ -114,6 +120,7 @@ public class Saml2LogoutRequestFilterTests {
|
|
|
assertThat(content).contains(
|
|
|
"<meta http-equiv=\"Content-Security-Policy\" content=\"script-src 'sha256-t+jmhLjs1ocvgaHBJsFcgznRk68d37TLtbI3NE9h7EU='\">");
|
|
|
assertThat(content).contains("<script>window.onload = () => document.forms[0].submit();</script>");
|
|
|
+ verify(this.securityContextHolderStrategy).getContext();
|
|
|
}
|
|
|
|
|
|
@Test
|