@ -1,5 +1,5 @@
@@ -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;
@@ -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;
@@ -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 {
@@ -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 {
@@ -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