4.로그인 페이지 커스터마이징
1. 커스텀 로그인 페이지
스프링 시큐리티에서는 기본적인 로그인 페이지를 제공하지만, 대부분의 상용 애플리케이션에서는 직접 개발한 로그인 페이지가 요구됨
아래와 같이 별도의 loginPage() 옵션을 사용할 경우 스프링 시큐리티에서 기본으로 제공하는 로그인 페이지가 사용되지 않고, 직접 개발한 로그인 페이지를 등록해야 함
SecurityFilterChain.java
public SecurityFilterChain filterChain(HttpSecurity http) {
http
.formLogin(form -> form
.loginPage("/login") // login.html 파일
.permitAll()
);
// ...
}1-1. Thymeleaf로 구현한 커스텀 로그인 페이지(login.html) 예시
src/main/resources/templates/login.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="https://www.thymeleaf.org">
<head>
<title>Please Log In</title>
</head>
<body>
<h1>Please Log In</h1>
<div th:if="${param.error}">
Invalid username and password.</div>
<div th:if="${param.logout}">
You have been logged out.</div>
<form th:action="@{/login}" method="post">
<div>
<input type="text" name="username" placeholder="Username"/>
</div>
<div>
<input type="password" name="password" placeholder="Password"/>
</div>
<input type="submit" value="Log in" />
</form>
</body>
</html>로그인 페이지를 렌더링시킬 핸들러 메서드 login()
LoginController.java
@Controller
class LoginController {
@GetMapping("/login")
String login() {
return "login";
}
}Last updated on