From c392fb70210723a02b56ace5dcc2f42a01e84734 Mon Sep 17 00:00:00 2001 From: michaelin007 Date: Sat, 24 Feb 2024 23:26:33 +0000 Subject: [PATCH] Migrate Application from Spring Security 5 to Spring Security 6 --- .../WebController.java | 23 +++++++++ .../WebSecurityConfig.java | 47 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebController.java create mode 100644 spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebSecurityConfig.java diff --git a/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebController.java b/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebController.java new file mode 100644 index 0000000000..f7dafd3d43 --- /dev/null +++ b/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebController.java @@ -0,0 +1,23 @@ +package com.baeldung.springsecuritymigration; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class WebController { + + @RequestMapping("/") + public String home() { + return "Home Page"; + } + + @RequestMapping("/welcome") + public String welcome() { + return "Welcome User"; + } + + @RequestMapping("/user-dashboard") + public String dashboard() { + return "My Dashboard"; + } +} diff --git a/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebSecurityConfig.java b/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebSecurityConfig.java new file mode 100644 index 0000000000..fba8242914 --- /dev/null +++ b/spring-security-modules/spring-security-core-2/src/main/java/com/baeldung/springsecuritymigration/WebSecurityConfig.java @@ -0,0 +1,47 @@ +package com.baeldung.springsecuritymigration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.Customizer; +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.WebSecurityCustomizer; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; +import org.springframework.security.web.SecurityFilterChain; + +@Configuration +@EnableWebSecurity +public class WebSecurityConfig { + + @Bean + public WebSecurityCustomizer webSecurityCustomizer() { + return (web) -> web.ignoring().requestMatchers("/js/**", "/css/**"); + } + + @Bean + SecurityFilterChain filterChain(HttpSecurity http) throws Exception { + http.cors(AbstractHttpConfigurer::disable) + .authorizeHttpRequests(request -> request.requestMatchers("/") + .permitAll() + .anyRequest() + .authenticated()) + .formLogin(form -> form.defaultSuccessUrl("/welcome")) + .httpBasic(Customizer.withDefaults()); + return http.build(); + } + + @Bean + public UserDetailsService userDetailsService() { + UserDetails user = User.withDefaultPasswordEncoder() + .username("User") + .password("password") + .roles("USER") + .build(); + + return new InMemoryUserDetailsManager(user); + } +}