diff --git a/spring-reactive-modules/spring-reactive/pom.xml b/spring-reactive-modules/spring-reactive/pom.xml
index 2281e6b0b4..f19809e302 100644
--- a/spring-reactive-modules/spring-reactive/pom.xml
+++ b/spring-reactive-modules/spring-reactive/pom.xml
@@ -6,9 +6,10 @@
spring-reactive
- com.baeldung.spring.reactive
- spring-reactive-modules
- 1.0.0-SNAPSHOT
+ com.baeldung
+ parent-boot-3
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-3
@@ -90,6 +91,18 @@
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
+
3.4.16
1.3.10
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/consumer/ConsumerDebuggingApplication.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/consumer/ConsumerDebuggingApplication.java
index fa10383c95..9cb8cdf003 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/consumer/ConsumerDebuggingApplication.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/consumer/ConsumerDebuggingApplication.java
@@ -24,10 +24,10 @@ public class ConsumerDebuggingApplication {
@Bean
public SecurityWebFilterChain debuggingConsumerSpringSecurityFilterChain(ServerHttpSecurity http) {
- http.authorizeExchange()
- .anyExchange()
- .permitAll();
- http.csrf().disable();
+ http.authorizeExchange(exchanges -> exchanges
+ .anyExchange()
+ .permitAll());
+ http.csrf(csrf -> csrf.disable());
return http.build();
}
}
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/server/ServerDebuggingApplication.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/server/ServerDebuggingApplication.java
index ddf97ee5a8..d836a892aa 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/server/ServerDebuggingApplication.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/debugging/server/ServerDebuggingApplication.java
@@ -22,9 +22,9 @@ public class ServerDebuggingApplication {
@Bean
public SecurityWebFilterChain debuggingServerSpringSecurityFilterChain(ServerHttpSecurity http) {
- http.authorizeExchange()
- .anyExchange()
- .permitAll();
+ http.authorizeExchange(exchanges -> exchanges
+ .anyExchange()
+ .permitAll());
return http.build();
}
}
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
index 67e54ad26a..69683452cd 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
@@ -1,6 +1,7 @@
package com.baeldung.reactive.security;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
@@ -12,18 +13,19 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.server.SecurityWebFilterChain;
@EnableWebFluxSecurity
+@Configuration
@EnableReactiveMethodSecurity
public class SecurityConfig {
@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
- return http.authorizeExchange()
- .pathMatchers("/admin").hasAuthority("ROLE_ADMIN")
- .anyExchange().authenticated()
- .and()
- .formLogin()
- .and()
- .csrf().disable()
+ return http
+ .authorizeExchange(exchanges -> exchanges
+ .pathMatchers("/admin").hasAuthority("ROLE_ADMIN")
+ .anyExchange().authenticated())
+ .formLogin(formLogin -> formLogin
+ .loginPage("/login"))
+ .csrf(csrf -> csrf.disable())
.build();
}
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity6Application.java
similarity index 94%
rename from spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java
rename to spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity6Application.java
index bc0895a38b..4b20c678b5 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/security/SpringSecurity6Application.java
@@ -13,11 +13,11 @@ import reactor.netty.http.server.HttpServer;
@ComponentScan(basePackages = {"com.baeldung.reactive.security"})
@EnableWebFlux
-public class SpringSecurity5Application {
+public class SpringSecurity6Application {
public static void main(String[] args) {
try (AnnotationConfigApplicationContext context =
- new AnnotationConfigApplicationContext(SpringSecurity5Application.class)) {
+ new AnnotationConfigApplicationContext(SpringSecurity6Application.class)) {
context.getBean(DisposableServer.class).onDispose().block();
}
}
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webclient/WebClientApplication.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webclient/WebClientApplication.java
index 3a62e7b8a5..c756f43893 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webclient/WebClientApplication.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webclient/WebClientApplication.java
@@ -16,9 +16,8 @@ public class WebClientApplication {
@Bean
public SecurityWebFilterChain filterChain(ServerHttpSecurity http) {
- http.csrf().disable()
- .authorizeExchange()
- .anyExchange().permitAll();
+ http.csrf(csrf -> csrf.disable())
+ .authorizeExchange(exchanges -> exchanges.anyExchange().permitAll());
return http.build();
}
}
diff --git a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webflux/annotation/EmployeeWebSecurityConfig.java b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webflux/annotation/EmployeeWebSecurityConfig.java
index fc98b70c0f..67c10e12a2 100644
--- a/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webflux/annotation/EmployeeWebSecurityConfig.java
+++ b/spring-reactive-modules/spring-reactive/src/main/java/com/baeldung/reactive/webflux/annotation/EmployeeWebSecurityConfig.java
@@ -1,7 +1,9 @@
package com.baeldung.reactive.webflux.annotation;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
+import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
@@ -12,6 +14,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.server.SecurityWebFilterChain;
@EnableWebFluxSecurity
+@Configuration
public class EmployeeWebSecurityConfig {
@Bean
@@ -27,12 +30,11 @@ public class EmployeeWebSecurityConfig {
@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http
- .csrf().disable()
- .authorizeExchange()
+ .csrf(csrf -> csrf.disable())
+ .authorizeExchange(exchanges -> exchanges
.pathMatchers(HttpMethod.POST, "/employees/update").hasRole("ADMIN")
- .pathMatchers("/**").permitAll()
- .and()
- .httpBasic();
+ .pathMatchers("/**").permitAll())
+ .httpBasic(Customizer.withDefaults());
return http.build();
}
diff --git a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/security/SecurityIntegrationTest.java b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/security/SecurityIntegrationTest.java
index 6bf39e4791..161c739ffb 100644
--- a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/security/SecurityIntegrationTest.java
+++ b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/security/SecurityIntegrationTest.java
@@ -8,7 +8,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.web.reactive.server.WebTestClient;
-@SpringBootTest(classes = SpringSecurity5Application.class)
+@SpringBootTest(classes = SpringSecurity6Application.class)
class SecurityIntegrationTest {
@Autowired
diff --git a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebClientIntegrationTest.java b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebClientIntegrationTest.java
index aaecb6498c..f109ab4887 100644
--- a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebClientIntegrationTest.java
+++ b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebClientIntegrationTest.java
@@ -7,7 +7,7 @@ import io.netty.handler.timeout.WriteTimeoutHandler;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.core.codec.CodecException;
import org.springframework.http.HttpHeaders;
diff --git a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebControllerIntegrationTest.java b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebControllerIntegrationTest.java
index f4d2f4384f..9274f836e6 100644
--- a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebControllerIntegrationTest.java
+++ b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebControllerIntegrationTest.java
@@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.web.reactive.server.WebTestClient;
diff --git a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebTestClientIntegrationTest.java b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebTestClientIntegrationTest.java
index 6c7433dfe3..d476fb1e9a 100644
--- a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebTestClientIntegrationTest.java
+++ b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclient/WebTestClientIntegrationTest.java
@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.context.ApplicationContext;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.web.reactive.server.WebTestClient;
diff --git a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclientrequests/WebClientRequestsWithParametersUnitTest.java b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclientrequests/WebClientRequestsWithParametersUnitTest.java
index 3e09521e04..bf407dbbf7 100644
--- a/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclientrequests/WebClientRequestsWithParametersUnitTest.java
+++ b/spring-reactive-modules/spring-reactive/src/test/java/com/baeldung/reactive/webclientrequests/WebClientRequestsWithParametersUnitTest.java
@@ -14,10 +14,7 @@ import org.springframework.web.util.DefaultUriBuilderFactory;
import reactor.core.publisher.Mono;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
@WebFluxTest
class WebClientRequestsWithParametersUnitTest {
@@ -51,6 +48,7 @@ class WebClientRequestsWithParametersUnitTest {
.uri("/products")
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products");
@@ -64,6 +62,7 @@ class WebClientRequestsWithParametersUnitTest {
.build(2))
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/2");
@@ -77,6 +76,7 @@ class WebClientRequestsWithParametersUnitTest {
.build(2, 13))
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/2/attributes/13");
@@ -93,6 +93,7 @@ class WebClientRequestsWithParametersUnitTest {
.build())
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?name=AndroidPhone&color=black&deliveryDate=13/04/2019");
@@ -109,6 +110,7 @@ class WebClientRequestsWithParametersUnitTest {
.build("AndroidPhone", "black", "13/04/2019"))
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?name=AndroidPhone&color=black&deliveryDate=13%2F04%2F2019");
@@ -123,6 +125,7 @@ class WebClientRequestsWithParametersUnitTest {
.build())
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?tag%5B%5D=Snapdragon&tag%5B%5D=NFC");
@@ -137,6 +140,7 @@ class WebClientRequestsWithParametersUnitTest {
.build())
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?category=Phones&category=Tablets");
@@ -151,6 +155,7 @@ class WebClientRequestsWithParametersUnitTest {
.build())
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?category=Phones,Tablets");
@@ -176,6 +181,7 @@ class WebClientRequestsWithParametersUnitTest {
.build())
.retrieve()
.bodyToMono(String.class)
+ .onErrorResume(e -> Mono.empty())
.block();
verifyCalledUrl("/products/?name=AndroidPhone&color=black&deliveryDate=13/04/2019");