@ -19,6 +19,7 @@ package org.springframework.security.test.context.support;
@@ -19,6 +19,7 @@ package org.springframework.security.test.context.support;
import org.reactivestreams.Subscription ;
import org.springframework.security.core.Authentication ;
import org.springframework.security.core.context.ReactiveSecurityContextHolder ;
import org.springframework.security.core.context.SecurityContext ;
import org.springframework.security.test.context.TestSecurityContextHolder ;
import org.springframework.test.context.TestContext ;
import org.springframework.test.context.TestExecutionListener ;
@ -54,7 +55,8 @@ public class ReactorContextTestExecutionListener
@@ -54,7 +55,8 @@ public class ReactorContextTestExecutionListener
private static class DelegateTestExecutionListener extends AbstractTestExecutionListener {
@Override
public void beforeTestMethod ( TestContext testContext ) throws Exception {
Hooks . onLastOperator ( Operators . lift ( ( s , sub ) - > new SecuritySubContext < > ( sub ) ) ) ;
SecurityContext securityContext = TestSecurityContextHolder . getContext ( ) ;
Hooks . onLastOperator ( Operators . lift ( ( s , sub ) - > new SecuritySubContext < > ( sub , securityContext ) ) ) ;
}
@Override
@ -66,9 +68,11 @@ public class ReactorContextTestExecutionListener
@@ -66,9 +68,11 @@ public class ReactorContextTestExecutionListener
private static String CONTEXT_DEFAULTED_ATTR_NAME = SecuritySubContext . class . getName ( ) . concat ( ".CONTEXT_DEFAULTED_ATTR_NAME" ) ;
private final CoreSubscriber < T > delegate ;
private final SecurityContext securityContext ;
SecuritySubContext ( CoreSubscriber < T > delegate ) {
SecuritySubContext ( CoreSubscriber < T > delegate , SecurityContext securityContext ) {
this . delegate = delegate ;
this . securityContext = securityContext ;
}
@Override
@ -78,7 +82,7 @@ public class ReactorContextTestExecutionListener
@@ -78,7 +82,7 @@ public class ReactorContextTestExecutionListener
return context ;
}
context = context . put ( CONTEXT_DEFAULTED_ATTR_NAME , Boolean . TRUE ) ;
Authentication authentication = Te stS ecurityContextHolder . getContext ( ) . getAuthentication ( ) ;
Authentication authentication = securityContext . getAuthentication ( ) ;
if ( authentication = = null ) {
return context ;
}