Skip to content

Commit deac397

Browse files
aschugunovlaurit
andauthored
spring mvc tests to java (#11114)
Co-authored-by: Lauri Tulmin <[email protected]>
1 parent 32df5ae commit deac397

33 files changed

+1398
-1162
lines changed

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SecurityConfig.groovy

-61
This file was deleted.

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/test/groovy/test/boot/SpringBootBasedTest.groovy

-20
This file was deleted.

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/test/groovy/test/filter/ServletFilterConfig.groovy

-90
This file was deleted.

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/test/groovy/test/filter/ServletFilterTest.groovy

-25
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.spring.webmvc.v3_1.boot;
7+
8+
import io.opentelemetry.instrumentation.spring.webmvc.boot.SavingAuthenticationProvider;
9+
import org.springframework.context.annotation.Bean;
10+
import org.springframework.context.annotation.Configuration;
11+
import org.springframework.core.annotation.Order;
12+
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
13+
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
14+
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
15+
16+
@Configuration
17+
@EnableWebSecurity
18+
public class SecurityConfig {
19+
20+
@Bean
21+
SavingAuthenticationProvider savingAuthenticationProvider() {
22+
return new SavingAuthenticationProvider();
23+
}
24+
25+
/**
26+
* Following configuration is required for unauthorised call tests (form would redirect, we need
27+
* 401)
28+
*/
29+
@Configuration
30+
@Order(1)
31+
static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
32+
33+
@Override
34+
protected void configure(HttpSecurity http) throws Exception {
35+
http.csrf()
36+
.disable()
37+
.antMatcher("/basicsecured/**")
38+
.authorizeRequests()
39+
.antMatchers("/basicsecured/**")
40+
.authenticated()
41+
.and()
42+
.httpBasic()
43+
.and()
44+
.authenticationProvider(
45+
getApplicationContext().getBean(SavingAuthenticationProvider.class));
46+
}
47+
}
48+
49+
/** Following configuration is required in order to get form login, needed by password tests */
50+
@Configuration
51+
static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
52+
53+
@Override
54+
protected void configure(HttpSecurity http) throws Exception {
55+
http.csrf()
56+
.disable()
57+
.authorizeRequests()
58+
.antMatchers("/formsecured/**")
59+
.authenticated()
60+
.and()
61+
.formLogin()
62+
.and()
63+
.authenticationProvider(
64+
getApplicationContext().getBean(SavingAuthenticationProvider.class));
65+
}
66+
}
67+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.spring.webmvc.v3_1.boot;
7+
8+
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION;
9+
10+
import com.google.common.collect.ImmutableMap;
11+
import io.opentelemetry.instrumentation.spring.webmvc.boot.AbstractSpringBootBasedTest;
12+
import io.opentelemetry.instrumentation.spring.webmvc.boot.AppConfig;
13+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
14+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension;
15+
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
16+
import org.junit.jupiter.api.extension.RegisterExtension;
17+
import org.springframework.boot.SpringApplication;
18+
import org.springframework.context.ConfigurableApplicationContext;
19+
20+
class SpringBootBasedTest extends AbstractSpringBootBasedTest {
21+
22+
@RegisterExtension
23+
private static final InstrumentationExtension testing =
24+
HttpServerInstrumentationExtension.forAgent();
25+
26+
private ConfigurableApplicationContext context;
27+
28+
@Override
29+
protected ConfigurableApplicationContext context() {
30+
return context;
31+
}
32+
33+
@Override
34+
protected ConfigurableApplicationContext setupServer() {
35+
SpringApplication app = new SpringApplication(AppConfig.class, securityConfigClass());
36+
app.setDefaultProperties(
37+
ImmutableMap.of(
38+
"server.port",
39+
port,
40+
"server.context-path",
41+
getContextPath(),
42+
"server.servlet.contextPath",
43+
getContextPath(),
44+
"server.error.include-message",
45+
"always"));
46+
context = app.run();
47+
return context;
48+
}
49+
50+
@Override
51+
public Class<?> securityConfigClass() {
52+
return SecurityConfig.class;
53+
}
54+
55+
@Override
56+
protected void configure(HttpServerTestOptions options) {
57+
super.configure(options);
58+
options.setResponseCodeOnNonStandardHttpMethod(
59+
Boolean.getBoolean("testLatestDeps") ? 500 : 200);
60+
options.setExpectedException(new RuntimeException(EXCEPTION.getBody()));
61+
}
62+
}

0 commit comments

Comments
 (0)