Skip to content

Commit 7db2e7b

Browse files
author
Dave Syer
committed
Make changes to code for Boot 1.4 (mostly tests)
1 parent 30d37f5 commit 7db2e7b

File tree

14 files changed

+47
-85
lines changed

14 files changed

+47
-85
lines changed

auth-server/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@
6565
<artifactId>spring-boot-starter-test</artifactId>
6666
<scope>test</scope>
6767
</dependency>
68+
<dependency>
69+
<groupId>org.springframework.boot</groupId>
70+
<artifactId>spring-boot-configuration-processor</artifactId>
71+
<optional>true</optional>
72+
</dependency>
6873
</dependencies>
6974

7075
<build>

auth-server/src/main/java/com/example/SocialApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import org.springframework.boot.autoconfigure.SpringBootApplication;
3535
import org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties;
3636
import org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoTokenServices;
37-
import org.springframework.boot.context.embedded.FilterRegistrationBean;
3837
import org.springframework.boot.context.properties.ConfigurationProperties;
38+
import org.springframework.boot.web.servlet.FilterRegistrationBean;
3939
import org.springframework.context.annotation.Bean;
4040
import org.springframework.context.annotation.Configuration;
4141
import org.springframework.core.annotation.Order;

auth-server/src/test/java/com/example/SocialApplicationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
import org.junit.Test;
1919
import org.junit.runner.RunWith;
20-
import org.springframework.test.context.web.WebAppConfiguration;
21-
import org.springframework.boot.test.SpringApplicationConfiguration;
20+
import org.springframework.boot.test.context.SpringBootTest;
2221
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2322

2423
@RunWith(SpringJUnit4ClassRunner.class)
25-
@SpringApplicationConfiguration(classes = SocialApplication.class)
26-
@WebAppConfiguration
24+
@SpringBootTest
2725
public class SocialApplicationTests {
2826

2927
@Test

click/src/test/java/com/example/SocialApplicationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
import org.junit.Test;
1919
import org.junit.runner.RunWith;
20-
import org.springframework.test.context.web.WebAppConfiguration;
21-
import org.springframework.boot.test.SpringApplicationConfiguration;
20+
import org.springframework.boot.test.context.SpringBootTest;
2221
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2322

2423
@RunWith(SpringJUnit4ClassRunner.class)
25-
@SpringApplicationConfiguration(classes = SocialApplication.class)
26-
@WebAppConfiguration
24+
@SpringBootTest
2725
public class SocialApplicationTests {
2826

2927
@Test

custom-error/src/main/java/com/example/SocialApplication.java

Lines changed: 15 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -15,55 +15,49 @@
1515
*/
1616
package com.example;
1717

18-
import java.io.IOException;
1918
import java.security.Principal;
2019
import java.util.List;
2120
import java.util.Map;
2221

23-
import javax.servlet.Filter;
24-
import javax.servlet.FilterChain;
25-
import javax.servlet.ServletException;
26-
import javax.servlet.http.Cookie;
27-
import javax.servlet.http.HttpServletRequest;
28-
import javax.servlet.http.HttpServletResponse;
29-
3022
import org.springframework.boot.SpringApplication;
3123
import org.springframework.boot.autoconfigure.SpringBootApplication;
3224
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
3325
import org.springframework.boot.autoconfigure.security.oauth2.resource.AuthoritiesExtractor;
3426
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
35-
import org.springframework.boot.context.embedded.ErrorPage;
27+
import org.springframework.boot.web.servlet.ErrorPage;
3628
import org.springframework.context.annotation.Bean;
3729
import org.springframework.context.annotation.Configuration;
3830
import org.springframework.http.HttpStatus;
3931
import org.springframework.security.authentication.BadCredentialsException;
4032
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
4133
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
4234
import org.springframework.security.core.authority.AuthorityUtils;
35+
import org.springframework.security.oauth2.client.OAuth2ClientContext;
4336
import org.springframework.security.oauth2.client.OAuth2RestOperations;
44-
import org.springframework.security.web.csrf.CsrfFilter;
45-
import org.springframework.security.web.csrf.CsrfToken;
46-
import org.springframework.security.web.csrf.CsrfTokenRepository;
47-
import org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository;
37+
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
38+
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
39+
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
4840
import org.springframework.stereotype.Controller;
4941
import org.springframework.web.bind.annotation.RequestMapping;
5042
import org.springframework.web.bind.annotation.ResponseBody;
51-
import org.springframework.web.filter.OncePerRequestFilter;
52-
import org.springframework.web.util.WebUtils;
5343

5444
@SpringBootApplication
5545
@EnableOAuth2Sso
5646
@Controller
5747
public class SocialApplication extends WebSecurityConfigurerAdapter {
5848

49+
@Bean
50+
public OAuth2RestTemplate oauth2RestTemplate(OAuth2ProtectedResourceDetails resource, OAuth2ClientContext context) {
51+
return new OAuth2RestTemplate(resource, context);
52+
}
53+
5954
@Bean
6055
public AuthoritiesExtractor authoritiesExtractor(OAuth2RestOperations template) {
6156
return map -> {
6257
String url = (String) map.get("organizations_url");
6358
@SuppressWarnings("unchecked")
6459
List<Map<String, Object>> orgs = template.getForObject(url, List.class);
65-
if (orgs.stream()
66-
.anyMatch(org -> "spring-projects".equals(org.get("login")))) {
60+
if (orgs.stream().anyMatch(org -> "spring-projects".equals(org.get("login")))) {
6761
return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER");
6862
}
6963
throw new BadCredentialsException("Not in Spring Team");
@@ -84,12 +78,9 @@ public String unauthenticated() {
8478
@Override
8579
protected void configure(HttpSecurity http) throws Exception {
8680
// @formatter:off
87-
http.antMatcher("/**").authorizeRequests()
88-
.antMatchers("/", "/login**", "/webjars/**").permitAll()
89-
.anyRequest().authenticated().and()
90-
.logout().logoutSuccessUrl("/").permitAll().and()
91-
.csrf().csrfTokenRepository(csrfTokenRepository()).and()
92-
.addFilterAfter(csrfHeaderFilter(), CsrfFilter.class);
81+
http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**", "/webjars/**").permitAll().anyRequest()
82+
.authenticated().and().logout().logoutSuccessUrl("/").permitAll().and().csrf()
83+
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
9384
// @formatter:on
9485
}
9586

@@ -98,8 +89,7 @@ protected static class ServletCustomizer {
9889
@Bean
9990
public EmbeddedServletContainerCustomizer customizer() {
10091
return container -> {
101-
container.addErrorPages(
102-
new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
92+
container.addErrorPages(new ErrorPage(HttpStatus.UNAUTHORIZED, "/unauthenticated"));
10393
};
10494
}
10595
}
@@ -108,33 +98,4 @@ public static void main(String[] args) {
10898
SpringApplication.run(SocialApplication.class, args);
10999
}
110100

111-
private Filter csrfHeaderFilter() {
112-
return new OncePerRequestFilter() {
113-
@Override
114-
protected void doFilterInternal(HttpServletRequest request,
115-
HttpServletResponse response, FilterChain filterChain)
116-
throws ServletException, IOException {
117-
CsrfToken csrf = (CsrfToken) request
118-
.getAttribute(CsrfToken.class.getName());
119-
if (csrf != null) {
120-
Cookie cookie = WebUtils.getCookie(request, "XSRF-TOKEN");
121-
String token = csrf.getToken();
122-
if (cookie == null
123-
|| token != null && !token.equals(cookie.getValue())) {
124-
cookie = new Cookie("XSRF-TOKEN", token);
125-
cookie.setPath("/");
126-
response.addCookie(cookie);
127-
}
128-
}
129-
filterChain.doFilter(request, response);
130-
}
131-
};
132-
}
133-
134-
private CsrfTokenRepository csrfTokenRepository() {
135-
HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository();
136-
repository.setHeaderName("X-XSRF-TOKEN");
137-
return repository;
138-
}
139-
140101
}

custom-error/src/test/java/com/example/SocialApplicationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
import org.junit.Test;
1919
import org.junit.runner.RunWith;
20-
import org.springframework.test.context.web.WebAppConfiguration;
21-
import org.springframework.boot.test.SpringApplicationConfiguration;
20+
import org.springframework.boot.test.context.SpringBootTest;
2221
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2322

2423
@RunWith(SpringJUnit4ClassRunner.class)
25-
@SpringApplicationConfiguration(classes = SocialApplication.class)
26-
@WebAppConfiguration
24+
@SpringBootTest
2725
public class SocialApplicationTests {
2826

2927
@Test

github/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@
6565
<artifactId>spring-boot-starter-test</artifactId>
6666
<scope>test</scope>
6767
</dependency>
68+
<dependency>
69+
<groupId>org.springframework.boot</groupId>
70+
<artifactId>spring-boot-configuration-processor</artifactId>
71+
<optional>true</optional>
72+
</dependency>
6873
</dependencies>
6974

7075
<build>

github/src/main/java/com/example/SocialApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import org.springframework.boot.autoconfigure.SpringBootApplication;
3535
import org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties;
3636
import org.springframework.boot.autoconfigure.security.oauth2.resource.UserInfoTokenServices;
37-
import org.springframework.boot.context.embedded.FilterRegistrationBean;
3837
import org.springframework.boot.context.properties.ConfigurationProperties;
38+
import org.springframework.boot.web.servlet.FilterRegistrationBean;
3939
import org.springframework.context.annotation.Bean;
4040
import org.springframework.context.annotation.Configuration;
4141
import org.springframework.core.annotation.Order;

github/src/test/java/com/example/SocialApplicationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
import org.junit.Test;
1919
import org.junit.runner.RunWith;
20-
import org.springframework.test.context.web.WebAppConfiguration;
21-
import org.springframework.boot.test.SpringApplicationConfiguration;
20+
import org.springframework.boot.test.context.SpringBootTest;
2221
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2322

2423
@RunWith(SpringJUnit4ClassRunner.class)
25-
@SpringApplicationConfiguration(classes = SocialApplication.class)
26-
@WebAppConfiguration
24+
@SpringBootTest
2725
public class SocialApplicationTests {
2826

2927
@Test

logout/src/test/java/com/example/SocialApplicationTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717

1818
import org.junit.Test;
1919
import org.junit.runner.RunWith;
20-
import org.springframework.test.context.web.WebAppConfiguration;
21-
import org.springframework.boot.test.SpringApplicationConfiguration;
20+
import org.springframework.boot.test.context.SpringBootTest;
2221
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
2322

2423
@RunWith(SpringJUnit4ClassRunner.class)
25-
@SpringApplicationConfiguration(classes = SocialApplication.class)
26-
@WebAppConfiguration
24+
@SpringBootTest
2725
public class SocialApplicationTests {
2826

2927
@Test

0 commit comments

Comments
 (0)