diff --git a/spring-5-reactive-security/.gitignore b/spring-5-reactive-security/.gitignore
new file mode 100644
index 0000000000..dec013dfa4
--- /dev/null
+++ b/spring-5-reactive-security/.gitignore
@@ -0,0 +1,12 @@
+#folders#
+.idea
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/spring-5-reactive-security/README.md b/spring-5-reactive-security/README.md
new file mode 100644
index 0000000000..0a7fe7a47e
--- /dev/null
+++ b/spring-5-reactive-security/README.md
@@ -0,0 +1,18 @@
+## Spring REST Example Project
+
+### The Course
+The "REST With Spring" Classes: http://bit.ly/restwithspring
+
+### Relevant Articles
+
+- [Introduction to the Functional Web Framework in Spring 5](http://www.baeldung.com/spring-5-functional-web)
+- [Spring 5 WebClient](http://www.baeldung.com/spring-5-webclient)
+- [Spring Boot Actuator](http://www.baeldung.com/spring-boot-actuators)
+- [Exploring the Spring 5 MVC URL Matching Improvements](http://www.baeldung.com/spring-5-mvc-url-matching)
+- [Spring Security 5 for Reactive Applications](http://www.baeldung.com/spring-security-5-reactive)
+- [Reactive WebSockets with Spring 5](http://www.baeldung.com/spring-5-reactive-websockets)
+- [Spring Webflux Filters](http://www.baeldung.com/spring-webflux-filters)
+- [How to Set a Header on a Response with Spring 5](http://www.baeldung.com/spring-response-header)
+- [Spring Webflux and CORS](http://www.baeldung.com/spring-webflux-cors)
+- [Handling Errors in Spring WebFlux](http://www.baeldung.com/spring-webflux-errors)
+- [Guide to Spring 5 WebFlux](http://www.baeldung.com/spring-webflux)
diff --git a/spring-5-reactive-security/pom.xml b/spring-5-reactive-security/pom.xml
new file mode 100644
index 0000000000..3b64b9b3ac
--- /dev/null
+++ b/spring-5-reactive-security/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+
+ com.baeldung
+ spring-5-reactive-security
+ 0.0.1-SNAPSHOT
+ jar
+ spring-5-reactive-security
+ spring 5 security sample project about new features
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+
+
+ org.projectreactor
+ reactor-spring
+ ${reactor-spring.version}
+
+
+ javax.json.bind
+ javax.json.bind-api
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.projectlombok
+ lombok
+ compile
+
+
+ org.apache.geronimo.specs
+ geronimo-json_1.1_spec
+ ${geronimo-json_1.1_spec.version}
+
+
+ org.apache.johnzon
+ johnzon-jsonb
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+
+
+ org.springframework
+ spring-test
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections4.version}
+ test
+
+
+
+ io.reactivex.rxjava2
+ rxjava
+ ${rxjava-version}
+
+
+ io.projectreactor
+ reactor-test
+ ${project-reactor-test}
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.springframework.security
+ spring-security-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ com.baeldung.webflux.EmployeeSpringApplication
+ JAR
+
+
+
+
+
+
+ 1.0.1.RELEASE
+ 2.1.12
+ 1.1.3
+ 1.0
+ 1.0
+ 4.1
+ 3.1.6.RELEASE
+
+
+
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/DownstreamServiceReactiveHealthIndicator.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/DownstreamServiceReactiveHealthIndicator.java
similarity index 100%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/DownstreamServiceReactiveHealthIndicator.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/DownstreamServiceReactiveHealthIndicator.java
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/FeaturesEndpoint.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/FeaturesEndpoint.java
similarity index 100%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/FeaturesEndpoint.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/FeaturesEndpoint.java
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/InfoWebEndpointExtension.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/InfoWebEndpointExtension.java
similarity index 100%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/InfoWebEndpointExtension.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/InfoWebEndpointExtension.java
diff --git a/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/Spring5ReactiveApplication.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/Spring5ReactiveApplication.java
new file mode 100644
index 0000000000..f07ddfb0f7
--- /dev/null
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/Spring5ReactiveApplication.java
@@ -0,0 +1,15 @@
+package com.baeldung.reactive.actuator;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+
+@SpringBootApplication
+public class Spring5ReactiveApplication{
+
+ public static void main(String[] args) {
+ SpringApplication.run(Spring5ReactiveApplication.class, args);
+ }
+
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java
similarity index 91%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java
index 427fd70a6c..07f805fea4 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/actuator/WebSecurityConfig.java
@@ -22,7 +22,7 @@ public class WebSecurityConfig {
.authorizeExchange()
.matchers(EndpointRequest.to(
FeaturesEndpoint.class
- )).permitAll().and().csrf().disable().build();
+ )).permitAll().anyExchange().permitAll().and().csrf().disable().build();
}
}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/security/GreetController.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/GreetController.java
similarity index 100%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/security/GreetController.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/GreetController.java
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/security/GreetService.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/GreetService.java
similarity index 100%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/security/GreetService.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/GreetService.java
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
similarity index 76%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
index 5ec3b6e241..225f78b3f7 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SecurityConfig.java
@@ -8,6 +8,8 @@ import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.server.SecurityWebFilterChain;
import com.baeldung.reactive.actuator.FeaturesEndpoint;
@@ -35,19 +37,24 @@ public class SecurityConfig {
@Bean
public MapReactiveUserDetailsService userDetailsService() {
- UserDetails user = User.withDefaultPasswordEncoder()
- .username("user")
- .password("password")
+ UserDetails user = User
+ .withUsername("user")
+ .password(passwordEncoder().encode("password"))
.roles("USER")
.build();
- UserDetails admin = User.withDefaultPasswordEncoder()
- .username("admin")
- .password("password")
+ UserDetails admin = User
+ .withUsername("admin")
+ .password(passwordEncoder().encode("password"))
.roles("ADMIN")
.build();
return new MapReactiveUserDetailsService(user, admin);
}
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/SpringSecurity5Application.java b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java
similarity index 97%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/SpringSecurity5Application.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java
index ca49ec6826..f2963c4fa5 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/SpringSecurity5Application.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/reactive/security/SpringSecurity5Application.java
@@ -1,4 +1,4 @@
-package com.baeldung.reactive;
+package com.baeldung.reactive.security;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/Employee.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/Employee.java
similarity index 81%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/Employee.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/Employee.java
index 6a03555654..bbdf85d293 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/Employee.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/Employee.java
@@ -1,17 +1,17 @@
-package com.baeldung.reactive.webflux;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class Employee {
-
- private String id;
- private String name;
-
- // standard getters and setters
-
-}
+package com.baeldung.webflux;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Employee {
+
+ private String id;
+ private String name;
+
+ // standard getters and setters
+
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeConfig.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeConfig.java
similarity index 93%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeConfig.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeConfig.java
index 082be68698..6e73004650 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeConfig.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeConfig.java
@@ -1,33 +1,33 @@
-package com.baeldung.reactive.webflux;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.reactive.HandlerMapping;
-import org.springframework.web.reactive.config.EnableWebFlux;
-import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
-import org.springframework.web.reactive.socket.WebSocketHandler;
-import org.springframework.web.reactive.socket.server.support.WebSocketHandlerAdapter;
-
-@Configuration
-@EnableWebFlux
-public class EmployeeConfig {
-
- @Bean
- public HandlerMapping handlerMapping() {
- Map map = new HashMap<>();
- map.put("/employee-feed", new EmployeeWebSocketHandler());
-
- SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
- mapping.setUrlMap(map);
- mapping.setOrder(10);
- return mapping;
- }
-
- @Bean
- public WebSocketHandlerAdapter handlerAdapter() {
- return new WebSocketHandlerAdapter();
- }
-}
+package com.baeldung.webflux;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.reactive.HandlerMapping;
+import org.springframework.web.reactive.config.EnableWebFlux;
+import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping;
+import org.springframework.web.reactive.socket.WebSocketHandler;
+import org.springframework.web.reactive.socket.server.support.WebSocketHandlerAdapter;
+
+@Configuration
+@EnableWebFlux
+public class EmployeeConfig {
+
+ @Bean
+ public HandlerMapping handlerMapping() {
+ Map map = new HashMap<>();
+ map.put("/employee-feed", new EmployeeWebSocketHandler());
+
+ SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
+ mapping.setUrlMap(map);
+ mapping.setOrder(10);
+ return mapping;
+ }
+
+ @Bean
+ public WebSocketHandlerAdapter handlerAdapter() {
+ return new WebSocketHandlerAdapter();
+ }
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeController.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeController.java
similarity index 93%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeController.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeController.java
index 98b16dafab..34e44afc8b 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeController.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeController.java
@@ -1,38 +1,38 @@
-package com.baeldung.reactive.webflux;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-@RestController
-@RequestMapping("/employees")
-public class EmployeeController {
-
- private EmployeeRepository employeeRepository;
-
- public EmployeeController(EmployeeRepository employeeRepository) {
- this.employeeRepository = employeeRepository;
- }
-
- @GetMapping("/{id}")
- private Mono getEmployeeById(@PathVariable String id) {
- return employeeRepository.findEmployeeById(id);
- }
-
- @GetMapping
- private Flux getAllEmployees() {
- return employeeRepository.findAllEmployees();
- }
-
- @PostMapping("/update")
- private Mono updateEmployee(@RequestBody Employee employee) {
- return employeeRepository.updateEmployee(employee);
- }
-
-}
+package com.baeldung.webflux;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+@RestController
+@RequestMapping("/employees")
+public class EmployeeController {
+
+ private EmployeeRepository employeeRepository;
+
+ public EmployeeController(EmployeeRepository employeeRepository) {
+ this.employeeRepository = employeeRepository;
+ }
+
+ @GetMapping("/{id}")
+ private Mono getEmployeeById(@PathVariable String id) {
+ return employeeRepository.findEmployeeById(id);
+ }
+
+ @GetMapping
+ private Flux getAllEmployees() {
+ return employeeRepository.findAllEmployees();
+ }
+
+ @PostMapping("/update")
+ private Mono updateEmployee(@RequestBody Employee employee) {
+ return employeeRepository.updateEmployee(employee);
+ }
+
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeCreationEvent.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeCreationEvent.java
similarity index 89%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeCreationEvent.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeCreationEvent.java
index 7a66e1e147..d4f9a4fb02 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeCreationEvent.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeCreationEvent.java
@@ -1,4 +1,4 @@
-package com.baeldung.reactive.webflux;
+package com.baeldung.webflux;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeRepository.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeRepository.java
similarity index 95%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeRepository.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeRepository.java
index a407c76fa8..d7f618f178 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeRepository.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeRepository.java
@@ -1,64 +1,64 @@
-package com.baeldung.reactive.webflux;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.springframework.stereotype.Repository;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-@Repository
-public class EmployeeRepository {
-
- static Map employeeData;
-
- static Map employeeAccessData;
-
- static
- {
- employeeData = new HashMap<>();
- employeeData.put("1",new Employee("1","Employee 1"));
- employeeData.put("2",new Employee("2","Employee 2"));
- employeeData.put("3",new Employee("3","Employee 3"));
- employeeData.put("4",new Employee("4","Employee 4"));
- employeeData.put("5",new Employee("5","Employee 5"));
- employeeData.put("6",new Employee("6","Employee 6"));
- employeeData.put("7",new Employee("7","Employee 7"));
- employeeData.put("8",new Employee("8","Employee 8"));
- employeeData.put("9",new Employee("9","Employee 9"));
- employeeData.put("10",new Employee("10","Employee 10"));
-
- employeeAccessData=new HashMap<>();
- employeeAccessData.put("1", "Employee 1 Access Key");
- employeeAccessData.put("2", "Employee 2 Access Key");
- employeeAccessData.put("3", "Employee 3 Access Key");
- employeeAccessData.put("4", "Employee 4 Access Key");
- employeeAccessData.put("5", "Employee 5 Access Key");
- employeeAccessData.put("6", "Employee 6 Access Key");
- employeeAccessData.put("7", "Employee 7 Access Key");
- employeeAccessData.put("8", "Employee 8 Access Key");
- employeeAccessData.put("9", "Employee 9 Access Key");
- employeeAccessData.put("10", "Employee 10 Access Key");
- }
-
- public Mono findEmployeeById(String id)
- {
- return Mono.just(employeeData.get(id));
- }
-
- public Flux findAllEmployees()
- {
- return Flux.fromIterable(employeeData.values());
- }
-
- public Mono updateEmployee(Employee employee)
- {
- Employee existingEmployee=employeeData.get(employee.getId());
- if(existingEmployee!=null)
- {
- existingEmployee.setName(employee.getName());
- }
- return Mono.just(existingEmployee);
- }
-}
+package com.baeldung.webflux;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.stereotype.Repository;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+@Repository
+public class EmployeeRepository {
+
+ static Map employeeData;
+
+ static Map employeeAccessData;
+
+ static
+ {
+ employeeData = new HashMap<>();
+ employeeData.put("1",new Employee("1","Employee 1"));
+ employeeData.put("2",new Employee("2","Employee 2"));
+ employeeData.put("3",new Employee("3","Employee 3"));
+ employeeData.put("4",new Employee("4","Employee 4"));
+ employeeData.put("5",new Employee("5","Employee 5"));
+ employeeData.put("6",new Employee("6","Employee 6"));
+ employeeData.put("7",new Employee("7","Employee 7"));
+ employeeData.put("8",new Employee("8","Employee 8"));
+ employeeData.put("9",new Employee("9","Employee 9"));
+ employeeData.put("10",new Employee("10","Employee 10"));
+
+ employeeAccessData=new HashMap<>();
+ employeeAccessData.put("1", "Employee 1 Access Key");
+ employeeAccessData.put("2", "Employee 2 Access Key");
+ employeeAccessData.put("3", "Employee 3 Access Key");
+ employeeAccessData.put("4", "Employee 4 Access Key");
+ employeeAccessData.put("5", "Employee 5 Access Key");
+ employeeAccessData.put("6", "Employee 6 Access Key");
+ employeeAccessData.put("7", "Employee 7 Access Key");
+ employeeAccessData.put("8", "Employee 8 Access Key");
+ employeeAccessData.put("9", "Employee 9 Access Key");
+ employeeAccessData.put("10", "Employee 10 Access Key");
+ }
+
+ public Mono findEmployeeById(String id)
+ {
+ return Mono.just(employeeData.get(id));
+ }
+
+ public Flux findAllEmployees()
+ {
+ return Flux.fromIterable(employeeData.values());
+ }
+
+ public Mono updateEmployee(Employee employee)
+ {
+ Employee existingEmployee=employeeData.get(employee.getId());
+ if(existingEmployee!=null)
+ {
+ existingEmployee.setName(employee.getName());
+ }
+ return Mono.just(existingEmployee);
+ }
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeSpringApplication.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeSpringApplication.java
similarity index 88%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeSpringApplication.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeSpringApplication.java
index 54b23a18de..2652c36695 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeSpringApplication.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeSpringApplication.java
@@ -1,17 +1,17 @@
-package com.baeldung.reactive.webflux;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class EmployeeSpringApplication {
-
- public static void main(String[] args) {
-
- SpringApplication.run(EmployeeSpringApplication.class, args);
-
- EmployeeWebClient employeeWebClient = new EmployeeWebClient();
- employeeWebClient.consume();
- }
-
-}
+package com.baeldung.webflux;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class EmployeeSpringApplication {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(EmployeeSpringApplication.class, args);
+
+ EmployeeWebClient employeeWebClient = new EmployeeWebClient();
+ employeeWebClient.consume();
+ }
+
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebClient.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebClient.java
similarity index 91%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebClient.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebClient.java
index 45d42ecda9..eb32408a7f 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebClient.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebClient.java
@@ -1,28 +1,28 @@
-package com.baeldung.reactive.webflux;
-
-import org.springframework.web.reactive.function.client.WebClient;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-public class EmployeeWebClient {
-
- WebClient client = WebClient.create("http://localhost:8080");
-
- public void consume() {
-
- Mono employeeMono = client.get()
- .uri("/employees/{id}", "1")
- .retrieve()
- .bodyToMono(Employee.class);
-
- employeeMono.subscribe(System.out::println);
-
- Flux employeeFlux = client.get()
- .uri("/employees")
- .retrieve()
- .bodyToFlux(Employee.class);
-
- employeeFlux.subscribe(System.out::println);
- }
+package com.baeldung.webflux;
+
+import org.springframework.web.reactive.function.client.WebClient;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public class EmployeeWebClient {
+
+ WebClient client = WebClient.create("http://localhost:8080");
+
+ public void consume() {
+
+ Mono employeeMono = client.get()
+ .uri("/employees/{id}", "1")
+ .retrieve()
+ .bodyToMono(Employee.class);
+
+ employeeMono.subscribe(System.out::println);
+
+ Flux employeeFlux = client.get()
+ .uri("/employees")
+ .retrieve()
+ .bodyToFlux(Employee.class);
+
+ employeeFlux.subscribe(System.out::println);
+ }
}
\ No newline at end of file
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSecurityConfig.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSecurityConfig.java
similarity index 71%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSecurityConfig.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSecurityConfig.java
index 7922e6ba44..75475a0f08 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSecurityConfig.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSecurityConfig.java
@@ -1,38 +1,46 @@
-package com.baeldung.reactive.webflux;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.http.HttpMethod;
-import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
-import org.springframework.security.config.web.server.ServerHttpSecurity;
-import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.web.server.SecurityWebFilterChain;
-
-@EnableWebFluxSecurity
-public class EmployeeWebSecurityConfig {
-
- @Bean
- public MapReactiveUserDetailsService userDetailsService() {
- UserDetails user = User.withDefaultPasswordEncoder()
- .username("admin")
- .password("password")
- .roles("ADMIN")
- .build();
- return new MapReactiveUserDetailsService(user);
- }
-
- @Bean
- public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
- http.csrf()
- .disable()
- .authorizeExchange()
- .pathMatchers(HttpMethod.POST, "/employees/update")
- .hasRole("ADMIN")
- .pathMatchers("/**")
- .permitAll()
- .and()
- .httpBasic();
- return http.build();
- }
-}
+package com.baeldung.webflux;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
+import org.springframework.security.config.web.server.ServerHttpSecurity;
+import org.springframework.security.core.userdetails.MapReactiveUserDetailsService;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.server.SecurityWebFilterChain;
+
+@EnableWebFluxSecurity
+public class EmployeeWebSecurityConfig {
+
+ @Bean
+ public MapReactiveUserDetailsService userDetailsService() {
+ UserDetails user = User
+ .withUsername("admin")
+ .password(passwordEncoder().encode("password"))
+ .roles("ADMIN")
+ .build();
+ return new MapReactiveUserDetailsService(user);
+ }
+
+ @Bean
+ public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
+ http.csrf()
+ .disable()
+ .authorizeExchange()
+ .pathMatchers(HttpMethod.POST, "/employees/update")
+ .hasRole("ADMIN")
+ .pathMatchers("/**")
+ .permitAll()
+ .and()
+ .httpBasic();
+ return http.build();
+ }
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+}
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketClient.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketClient.java
similarity index 94%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketClient.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketClient.java
index 4571cadc47..feb1eb62fb 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketClient.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketClient.java
@@ -1,4 +1,4 @@
-package com.baeldung.reactive.webflux;
+package com.baeldung.webflux;
import java.net.URI;
diff --git a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketHandler.java b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketHandler.java
similarity index 94%
rename from spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketHandler.java
rename to spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketHandler.java
index c696bc8215..40b7b760ee 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/reactive/webflux/EmployeeWebSocketHandler.java
+++ b/spring-5-reactive-security/src/main/java/com/baeldung/webflux/EmployeeWebSocketHandler.java
@@ -1,39 +1,39 @@
-package com.baeldung.reactive.webflux;
-
-import static java.time.LocalDateTime.now;
-import static java.util.UUID.randomUUID;
-
-import java.time.Duration;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.reactive.socket.WebSocketHandler;
-import org.springframework.web.reactive.socket.WebSocketSession;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-@Component("EmployeeWebSocketHandler")
-public class EmployeeWebSocketHandler implements WebSocketHandler {
-
- ObjectMapper om = new ObjectMapper();
-
- @Override
- public Mono handle(WebSocketSession webSocketSession) {
-
- Flux employeeCreationEvent = Flux.generate(sink -> {
- EmployeeCreationEvent event = new EmployeeCreationEvent(randomUUID().toString(), now().toString());
- try {
- sink.next(om.writeValueAsString(event));
- } catch (JsonProcessingException e) {
- sink.error(e);
- }
- });
-
- return webSocketSession.send(employeeCreationEvent
- .map(webSocketSession::textMessage)
- .delayElements(Duration.ofSeconds(1)));
- }
-}
+package com.baeldung.webflux;
+
+import static java.time.LocalDateTime.now;
+import static java.util.UUID.randomUUID;
+
+import java.time.Duration;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.reactive.socket.WebSocketHandler;
+import org.springframework.web.reactive.socket.WebSocketSession;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+@Component("EmployeeWebSocketHandler")
+public class EmployeeWebSocketHandler implements WebSocketHandler {
+
+ ObjectMapper om = new ObjectMapper();
+
+ @Override
+ public Mono handle(WebSocketSession webSocketSession) {
+
+ Flux employeeCreationEvent = Flux.generate(sink -> {
+ EmployeeCreationEvent event = new EmployeeCreationEvent(randomUUID().toString(), now().toString());
+ try {
+ sink.next(om.writeValueAsString(event));
+ } catch (JsonProcessingException e) {
+ sink.error(e);
+ }
+ });
+
+ return webSocketSession.send(employeeCreationEvent
+ .map(webSocketSession::textMessage)
+ .delayElements(Duration.ofSeconds(1)));
+ }
+}
diff --git a/spring-5-reactive-security/src/main/resources/application.properties b/spring-5-reactive-security/src/main/resources/application.properties
new file mode 100644
index 0000000000..234834b894
--- /dev/null
+++ b/spring-5-reactive-security/src/main/resources/application.properties
@@ -0,0 +1,5 @@
+logging.level.root=INFO
+
+management.endpoints.web.exposure.include.=*
+
+info.app.name=Spring Boot 2 actuator Application
diff --git a/spring-5-reactive-security/src/main/resources/files/hello.txt b/spring-5-reactive-security/src/main/resources/files/hello.txt
new file mode 100644
index 0000000000..b6fc4c620b
--- /dev/null
+++ b/spring-5-reactive-security/src/main/resources/files/hello.txt
@@ -0,0 +1 @@
+hello
\ No newline at end of file
diff --git a/spring-5-reactive-security/src/main/resources/files/test/test.txt b/spring-5-reactive-security/src/main/resources/files/test/test.txt
new file mode 100644
index 0000000000..30d74d2584
--- /dev/null
+++ b/spring-5-reactive-security/src/main/resources/files/test/test.txt
@@ -0,0 +1 @@
+test
\ No newline at end of file
diff --git a/spring-5-reactive-security/src/main/resources/logback.xml b/spring-5-reactive-security/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/spring-5-reactive-security/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-5-reactive-security/src/main/resources/static/client-websocket.html b/spring-5-reactive-security/src/main/resources/static/client-websocket.html
new file mode 100644
index 0000000000..3f840e8bd4
--- /dev/null
+++ b/spring-5-reactive-security/src/main/resources/static/client-websocket.html
@@ -0,0 +1,34 @@
+
+
+
+
+Baeldung: Spring 5 Reactive Client WebSocket (Browser)
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-5-reactive-security/src/main/webapp/WEB-INF/web.xml b/spring-5-reactive-security/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..bfcf43dad2
--- /dev/null
+++ b/spring-5-reactive-security/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,21 @@
+
+
+
+ Spring Functional Application
+
+
+ functional
+ com.baeldung.functional.RootServlet
+ 1
+ true
+
+
+ functional
+ /
+
+
+
+
\ No newline at end of file
diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java
similarity index 95%
rename from spring-5-reactive/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java
rename to spring-5-reactive-security/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java
index 3020e86723..94979a18ca 100644
--- a/spring-5-reactive/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java
+++ b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/actuator/ActuatorInfoIntegrationTest.java
@@ -9,8 +9,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;
-import com.baeldung.reactive.Spring5ReactiveApplication;
-
import java.io.IOException;
import static org.junit.Assert.assertEquals;
diff --git a/spring-5-reactive/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java
similarity index 93%
rename from spring-5-reactive/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java
rename to spring-5-reactive-security/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java
index e8c8c25723..3dc832d781 100644
--- a/spring-5-reactive/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java
+++ b/spring-5-reactive-security/src/test/java/com/baeldung/reactive/webflux/EmployeeControllerIntegrationTest.java
@@ -1,74 +1,76 @@
-package com.baeldung.reactive.webflux;
-
-import static org.mockito.BDDMockito.given;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.MethodSorters;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.reactive.server.WebTestClient;
-
-import com.baeldung.reactive.Spring5ReactiveApplication;
-
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes=Spring5ReactiveApplication.class)
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class EmployeeControllerIntegrationTest {
-
- @Autowired
- private WebTestClient testClient;
-
- @MockBean
- private EmployeeRepository employeeRepository;
-
- @Test
- public void givenEmployeeId_whenGetEmployeeById_thenCorrectEmployee() {
-
- Employee employee = new Employee("1", "Employee 1 Name");
-
- given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
- testClient.get()
- .uri("/employees/1")
- .exchange()
- .expectStatus()
- .isOk()
- .expectBody(Employee.class)
- .isEqualTo(employee);
- }
-
- @Test
- public void whenGetAllEmployees_thenCorrectEmployees() {
-
- List employeeList = new ArrayList<>();
-
- Employee employee1 = new Employee("1", "Employee 1 Name");
- Employee employee2 = new Employee("2", "Employee 2 Name");
- Employee employee3 = new Employee("3", "Employee 3 Name");
-
- employeeList.add(employee1);
- employeeList.add(employee2);
- employeeList.add(employee3);
-
- Flux employeeFlux = Flux.fromIterable(employeeList);
-
- given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
- testClient.get()
- .uri("/employees")
- .exchange()
- .expectStatus()
- .isOk()
- .expectBodyList(Employee.class)
- .hasSize(3)
- .isEqualTo(employeeList);
- }
-}
+package com.baeldung.reactive.webflux;
+
+import static org.mockito.BDDMockito.given;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
+
+import com.baeldung.reactive.actuator.Spring5ReactiveApplication;
+import com.baeldung.webflux.Employee;
+import com.baeldung.webflux.EmployeeRepository;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes=Spring5ReactiveApplication.class)
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class EmployeeControllerIntegrationTest {
+
+ @Autowired
+ private WebTestClient testClient;
+
+ @MockBean
+ private EmployeeRepository employeeRepository;
+
+ @Test
+ public void givenEmployeeId_whenGetEmployeeById_thenCorrectEmployee() {
+
+ Employee employee = new Employee("1", "Employee 1 Name");
+
+ given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
+ testClient.get()
+ .uri("/employees/1")
+ .exchange()
+ .expectStatus()
+ .isOk()
+ .expectBody(Employee.class)
+ .isEqualTo(employee);
+ }
+
+ @Test
+ public void whenGetAllEmployees_thenCorrectEmployees() {
+
+ List employeeList = new ArrayList<>();
+
+ Employee employee1 = new Employee("1", "Employee 1 Name");
+ Employee employee2 = new Employee("2", "Employee 2 Name");
+ Employee employee3 = new Employee("3", "Employee 3 Name");
+
+ employeeList.add(employee1);
+ employeeList.add(employee2);
+ employeeList.add(employee3);
+
+ Flux employeeFlux = Flux.fromIterable(employeeList);
+
+ given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
+ testClient.get()
+ .uri("/employees")
+ .exchange()
+ .expectStatus()
+ .isOk()
+ .expectBodyList(Employee.class)
+ .hasSize(3)
+ .isEqualTo(employeeList);
+ }
+}
diff --git a/spring-5-reactive/src/test/java/com/baeldung/security/SecurityIntegrationTest.java b/spring-5-reactive-security/src/test/java/com/baeldung/security/SecurityIntegrationTest.java
similarity index 94%
rename from spring-5-reactive/src/test/java/com/baeldung/security/SecurityIntegrationTest.java
rename to spring-5-reactive-security/src/test/java/com/baeldung/security/SecurityIntegrationTest.java
index a59ef57db8..423500e09c 100644
--- a/spring-5-reactive/src/test/java/com/baeldung/security/SecurityIntegrationTest.java
+++ b/spring-5-reactive-security/src/test/java/com/baeldung/security/SecurityIntegrationTest.java
@@ -1,6 +1,5 @@
package com.baeldung.security;
-import com.baeldung.reactive.SpringSecurity5Application;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -12,6 +11,8 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient;
+import com.baeldung.reactive.security.SpringSecurity5Application;
+
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = SpringSecurity5Application.class)
public class SecurityIntegrationTest {
diff --git a/spring-5-reactive-security/src/test/resources/baeldung-weekly.png b/spring-5-reactive-security/src/test/resources/baeldung-weekly.png
new file mode 100644
index 0000000000..a1b7eebcab
Binary files /dev/null and b/spring-5-reactive-security/src/test/resources/baeldung-weekly.png differ
diff --git a/spring-5-reactive/pom.xml b/spring-5-reactive/pom.xml
index f89fd45581..e81d3d8b79 100644
--- a/spring-5-reactive/pom.xml
+++ b/spring-5-reactive/pom.xml
@@ -39,10 +39,6 @@
javax.json.bind
javax.json.bind-api
-
- org.springframework.boot
- spring-boot-starter-actuator
-
org.projectlombok
lombok
@@ -86,10 +82,6 @@
${commons-collections4.version}
test
-
- org.apache.commons
- commons-lang3
-
io.reactivex.rxjava2
@@ -102,15 +94,6 @@
${project-reactor-test}
test
-
- org.springframework.boot
- spring-boot-starter-security
-
-
- org.springframework.security
- spring-security-test
- test
-
diff --git a/spring-5-reactive/src/main/java/com/baeldung/functional/FunctionalSpringBootApplication.java b/spring-5-reactive/src/main/java/com/baeldung/functional/FunctionalSpringBootApplication.java
index 402b607b19..a1d5d87d5c 100644
--- a/spring-5-reactive/src/main/java/com/baeldung/functional/FunctionalSpringBootApplication.java
+++ b/spring-5-reactive/src/main/java/com/baeldung/functional/FunctionalSpringBootApplication.java
@@ -21,9 +21,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.server.reactive.HttpHandler;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse;
@@ -68,18 +65,6 @@ public class FunctionalSpringBootApplication {
return registrationBean;
}
- @Configuration
- @EnableWebSecurity
- @Profile("!https")
- static class SecurityConfig extends WebSecurityConfigurerAdapter {
- @Override
- protected void configure(final HttpSecurity http) throws Exception {
- http.authorizeRequests()
- .anyRequest()
- .permitAll();
- }
- }
-
public static void main(String[] args) {
SpringApplication.run(FunctionalSpringBootApplication.class, args);
}
diff --git a/spring-5-reactive/src/main/resources/application.properties b/spring-5-reactive/src/main/resources/application.properties
index 234834b894..92f3116f84 100644
--- a/spring-5-reactive/src/main/resources/application.properties
+++ b/spring-5-reactive/src/main/resources/application.properties
@@ -1,5 +1,2 @@
logging.level.root=INFO
-management.endpoints.web.exposure.include.=*
-
-info.app.name=Spring Boot 2 actuator Application