66package io .opentelemetry .javaagent .instrumentation .spring .security .config .v6_0 .servlet ;
77
88import static org .assertj .core .api .Assertions .assertThat ;
9+ import static org .mockito .Mockito .mock ;
910
1011import io .opentelemetry .instrumentation .spring .security .config .v6_0 .servlet .EnduserAttributesCapturingServletFilter ;
1112import java .util .Collections ;
13+ import java .util .Map ;
1214import org .junit .jupiter .api .Test ;
1315import org .junit .jupiter .api .extension .ExtendWith ;
14- import org .mockito .Mock ;
1516import org .mockito .junit .jupiter .MockitoExtension ;
1617import org .springframework .beans .factory .annotation .Autowired ;
1718import org .springframework .context .ApplicationContext ;
1819import org .springframework .context .annotation .Configuration ;
19- import org .springframework .security .config .annotation .ObjectPostProcessor ;
2020import org .springframework .security .config .annotation .authentication .builders .AuthenticationManagerBuilder ;
2121import org .springframework .security .config .annotation .web .builders .HttpSecurity ;
2222import org .springframework .security .web .DefaultSecurityFilterChain ;
@@ -29,8 +29,6 @@ class HttpSecurityInstrumentationTest {
2929 @ Configuration
3030 static class TestConfiguration {}
3131
32- @ Mock ObjectPostProcessor <Object > objectPostProcessor ;
33-
3432 /**
3533 * Ensures that {@link HttpSecurityInstrumentation} registers a {@link
3634 * EnduserAttributesCapturingServletFilter} in the filter chain.
@@ -40,14 +38,27 @@ static class TestConfiguration {}
4038 @ Test
4139 void ensureFilterRegistered (@ Autowired ApplicationContext applicationContext ) throws Exception {
4240
41+ Class <?> processorClass ;
42+ try {
43+ processorClass = Class .forName ("org.springframework.security.config.ObjectPostProcessor" );
44+ } catch (ClassNotFoundException e ) {
45+ // this was marked deprecated for removal in 6.4.2
46+ processorClass =
47+ Class .forName ("org.springframework.security.config.annotation.ObjectPostProcessor" );
48+ }
49+
50+ Object processor = mock (processorClass );
51+
4352 AuthenticationManagerBuilder authenticationBuilder =
44- new AuthenticationManagerBuilder ( objectPostProcessor );
53+ AuthenticationManagerBuilder . class . getConstructor ( processorClass ). newInstance ( processor );
4554
4655 HttpSecurity httpSecurity =
47- new HttpSecurity (
48- objectPostProcessor ,
49- authenticationBuilder ,
50- Collections .singletonMap (ApplicationContext .class , applicationContext ));
56+ HttpSecurity .class
57+ .getConstructor (processorClass , AuthenticationManagerBuilder .class , Map .class )
58+ .newInstance (
59+ processor ,
60+ authenticationBuilder ,
61+ Collections .singletonMap (ApplicationContext .class , applicationContext ));
5162
5263 DefaultSecurityFilterChain filterChain = httpSecurity .build ();
5364
0 commit comments