diff --git a/2024-03/spring-24/src/main/java/ru/otus/spring/controller/PagesController.java b/2024-03/spring-24/src/main/java/ru/otus/spring/controller/PagesController.java index 7453cff6..ab4cd34d 100644 --- a/2024-03/spring-24/src/main/java/ru/otus/spring/controller/PagesController.java +++ b/2024-03/spring-24/src/main/java/ru/otus/spring/controller/PagesController.java @@ -2,8 +2,11 @@ package ru.otus.spring.controller; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller @@ -24,8 +27,10 @@ public class PagesController { } @GetMapping("/authenticated") - public String authenticatedPage() { + public String authenticatedPage(Model model) { SecurityContext securityContext = SecurityContextHolder.getContext(); + User user = (User) securityContext.getAuthentication().getPrincipal(); + model.addAttribute("userName", user.getUsername()); return "authenticated"; } @@ -34,9 +39,15 @@ public class PagesController { return "success"; } - @GetMapping("/error") - public String errorPage() { + public String errorPage(Model model) { + model.addAttribute("source", "errorPage"); + return "error"; + } + + @PostMapping("/fail") + public String failPage(Model model) { + model.addAttribute("source", "failPage"); return "error"; } } diff --git a/2024-03/spring-24/src/main/java/ru/otus/spring/security/SecurityConfiguration.java b/2024-03/spring-24/src/main/java/ru/otus/spring/security/SecurityConfiguration.java index 5ab39389..5aab6539 100644 --- a/2024-03/spring-24/src/main/java/ru/otus/spring/security/SecurityConfiguration.java +++ b/2024-03/spring-24/src/main/java/ru/otus/spring/security/SecurityConfiguration.java @@ -23,7 +23,8 @@ import java.util.ArrayList; public class SecurityConfiguration { @Bean - public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + public SecurityFilterChain securityFilterChain(HttpSecurity http) + throws Exception { http .csrf(AbstractHttpConfigurer::disable) .sessionManagement((session) -> session @@ -34,10 +35,15 @@ public class SecurityConfiguration { .requestMatchers("/authenticated", "/success").authenticated() .anyRequest().permitAll() ) - //.addFilterAfter(new MyOwnFilter(), AuthorizationFilter.class) - //.httpBasic(Customizer.withDefaults()) +// .addFilterAfter(new MyOwnFilter(), AuthorizationFilter.class) +// .httpBasic(Customizer.withDefaults()) .formLogin(Customizer.withDefaults()) - //.rememberMe(rm -> rm.tokenValiditySeconds(600)) +/* + .formLogin(fm -> fm.defaultSuccessUrl("/success") + .failureForwardUrl("/fail") + ) +*/ +// .rememberMe(rm -> rm.tokenValiditySeconds(600)) ; return http.build(); } diff --git a/2024-03/spring-24/src/main/resources/templates/authenticated.html b/2024-03/spring-24/src/main/resources/templates/authenticated.html index 0d2043f0..62f1eb0d 100644 --- a/2024-03/spring-24/src/main/resources/templates/authenticated.html +++ b/2024-03/spring-24/src/main/resources/templates/authenticated.html @@ -1,10 +1,10 @@ - +