Skip to content

Commit c672175

Browse files
authored
Java 26572 Update article Spring Cloud – Bootstrapping (#16697)
1 parent 9c15a07 commit c672175

File tree

8 files changed

+40
-17
lines changed

8 files changed

+40
-17
lines changed

spring-cloud-modules/spring-cloud-bootstrap/config/src/main/java/com/baeldung/spring/cloud/bootstrap/config/ConfigApplication.java renamed to spring-cloud-modules/spring-cloud-bootstrap/config/src/main/java/com/baeldung/spring/cloud/bootstrap/ConfigApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.baeldung.spring.cloud.bootstrap.config;
1+
package com.baeldung.spring.cloud.bootstrap;
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;

spring-cloud-modules/spring-cloud-bootstrap/config/src/main/java/com/baeldung/spring/cloud/bootstrap/config/SecurityConfig.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
package com.baeldung.spring.cloud.bootstrap.config;
22

3+
import org.apache.commons.configuration.AbstractConfiguration;
34
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.security.config.Customizer;
47
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
58
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
69
import org.springframework.security.core.userdetails.User;
10+
import org.springframework.security.core.userdetails.UserDetailsService;
711
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
812
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
913
import org.springframework.security.web.SecurityFilterChain;
1014

1115
@EnableWebSecurity
16+
@Configuration
1217
public class SecurityConfig {
1318

1419
@Bean
15-
public InMemoryUserDetailsManager userDetailsService(BCryptPasswordEncoder bCryptPasswordEncoder) {
20+
public UserDetailsService userDetailsService(BCryptPasswordEncoder bCryptPasswordEncoder) {
1621
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
1722
manager.createUser(User.withUsername("configUser")
1823
.password(bCryptPasswordEncoder.encode("configPassword"))
@@ -23,14 +28,11 @@ public InMemoryUserDetailsManager userDetailsService(BCryptPasswordEncoder bCryp
2328

2429
@Bean
2530
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
26-
http.authorizeRequests()
31+
http.authorizeRequests(auth -> auth
2732
.anyRequest()
28-
.hasRole("SYSTEM")
29-
.and()
30-
.httpBasic()
31-
.and()
32-
.csrf()
33-
.disable();
33+
.hasRole("SYSTEM"))
34+
.httpBasic(Customizer.withDefaults())
35+
.csrf(csrf -> csrf.disable());
3436
return http.build();
3537
}
3638

spring-cloud-modules/spring-cloud-bootstrap/config/src/test/java/com/baeldung/SpringContextTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.springframework.boot.test.context.SpringBootTest;
66
import org.springframework.test.context.junit4.SpringRunner;
77

8-
import com.baeldung.spring.cloud.bootstrap.config.ConfigApplication;
8+
import com.baeldung.spring.cloud.bootstrap.ConfigApplication;
99

1010
@RunWith(SpringRunner.class)
1111
@SpringBootTest(classes = ConfigApplication.class)

spring-cloud-modules/spring-cloud-bootstrap/discovery/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@
5454
</dependencies>
5555

5656
<properties>
57-
<spring-cloud-dependencies.version>2022.0.3</spring-cloud-dependencies.version>
57+
<spring-cloud-dependencies.version>2023.0.1</spring-cloud-dependencies.version>
58+
<spring-boot.version>3.2.2</spring-boot.version>
5859
</properties>
5960

6061
</project>

spring-cloud-modules/spring-cloud-bootstrap/discovery/src/main/java/com/baeldung/spring/cloud/bootstrap/discovery/SecurityConfig.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,43 @@
11
package com.baeldung.spring.cloud.bootstrap.discovery;
22

33
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.context.annotation.Bean;
45
import org.springframework.context.annotation.Configuration;
5-
import org.springframework.core.annotation.Order;
66
import org.springframework.http.HttpMethod;
77
import org.springframework.security.config.Customizer;
88
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
99
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
1010
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
11+
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
1112
import org.springframework.security.config.http.SessionCreationPolicy;
13+
import org.springframework.security.web.SecurityFilterChain;
1214

1315
@Configuration
1416
@EnableWebSecurity
15-
@Order(1)
1617
public class SecurityConfig {
1718

1819
@Autowired
1920
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
2021
auth.inMemoryAuthentication().withUser("discUser").password("{noop}discPassword").roles("SYSTEM");
2122
}
2223

23-
protected void configure(HttpSecurity http) throws Exception {
24-
http.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)).authorizeHttpRequests(auth -> auth.requestMatchers("/eureka/**")).authorizeRequests(auth -> auth.requestMatchers("/eureka/**").hasRole("SYSTEM").anyRequest().denyAll()).httpBasic(
25-
Customizer.withDefaults()).csrf(csrf -> csrf.disable());
24+
@Bean
25+
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
26+
http.csrf(AbstractHttpConfigurer::disable)
27+
.sessionManagement(sessionManagement ->
28+
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.ALWAYS))
29+
.authorizeHttpRequests(authorizeRequests ->
30+
authorizeRequests
31+
.requestMatchers(HttpMethod.GET, "/eureka/**").hasRole("SYSTEM")
32+
.requestMatchers(HttpMethod.POST, "/eureka/**").hasRole("SYSTEM")
33+
.requestMatchers(HttpMethod.PUT, "/eureka/**").hasRole("SYSTEM")
34+
.requestMatchers(HttpMethod.DELETE, "/eureka/**").hasRole("SYSTEM")
35+
.anyRequest().authenticated())
36+
.httpBasic(Customizer.withDefaults());
37+
38+
return http.build();
39+
40+
2641
}
2742

2843
@Configuration
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.baeldung.spring.cloud.bootstrap.discovery;
22

3+
import org.springframework.context.annotation.Configuration;
34
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
45
import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;
56

67
@EnableRedisHttpSession
8+
@Configuration
79
public class SessionConfig extends AbstractHttpSessionApplicationInitializer {
810
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
spring.cloud.config.name=discovery
22
spring.cloud.config.uri=http://localhost:8081
33
spring.cloud.config.username=configUser
4-
spring.cloud.config.password=configPassword
4+
spring.cloud.config.password=configPassword
5+
eureka.client.service-url.defaultZone=http://discUser:discPassword@localhost:8082/eureka/

spring-cloud-modules/spring-cloud-bootstrap/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
<properties>
2929
<maven.compiler.release>17</maven.compiler.release>
30+
<spring-cloud-dependencies.version>2023.0.1</spring-cloud-dependencies.version>
31+
<spring-boot.version>3.2.2</spring-boot.version>
3032
</properties>
3133

3234
</project>

0 commit comments

Comments
 (0)