2024-03 spring-24 updated

This commit is contained in:
stvort committed 2024-07-04 19:40:41 +04:00
1 parent dd9729f238
commit ddb9e342be
4 files changed
+29 -11

No files matched your search

@@ -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";
}
}
@@ -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();
}
@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8"/>
<title>Только для авторизованных</title>
</head>
<body>
Только для авторизованных
Только для авторизованных. Вы <span th:text = "${userName}"></span> как раз такой)
</body>
</html>
@@ -1,10 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8"/>
<title>Упс...</title>
</head>
<body>
Что-то пошло не так. Печалька
Что-то пошло не так. Печалька <br/>
Источник: <span th:text = "${source}">Неизвестен</span>
</body>
</html>