1
0
mirror of synced 2026-08-04 09:17:02 +00:00

Use SecurityContextHolderStrategy for Data

Issue gh-11060
This commit is contained in:
Josh Cummings
2022-06-21 16:37:26 -06:00
parent 0fee05d023
commit 5de975f4a2
2 changed files with 31 additions and 1 deletions
@@ -29,9 +29,14 @@ import org.springframework.security.authentication.AuthenticationTrustResolver;
import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.context.SecurityContextHolderStrategy;
import org.springframework.security.core.context.SecurityContextImpl;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class SecurityEvaluationContextExtensionTests {
@@ -59,6 +64,16 @@ public class SecurityEvaluationContextExtensionTests {
assertThat(getRoot().getAuthentication()).isSameAs(authentication);
}
@Test
public void getRootObjectUseSecurityContextHolderStrategy() {
TestingAuthenticationToken authentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
SecurityContextHolderStrategy strategy = mock(SecurityContextHolderStrategy.class);
given(strategy.getContext()).willReturn(new SecurityContextImpl(authentication));
this.securityExtension.setSecurityContextHolderStrategy(strategy);
assertThat(getRoot().getAuthentication()).isSameAs(authentication);
verify(strategy).getContext();
}
@Test
public void getRootObjectExplicitAuthenticationOverridesSecurityContextHolder() {
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");