[스프링] 스프링 시큐리티를 이용한 로그인 페이지 커스터마이징
스프링 시큐리티는 웹 애플리케이션의 보안과 접근 제어를 위한 강력한 도구입니다. 이 도구를 활용하여 로그인 페이지의 커스터마이징을 할 수 있습니다. 이번 포스트에서는 스프링 부트와 스프링 시큐리티를 사용하여 로그인 페이지를 커스터마이징하는 방법에 대해 알아보겠습니다.
1. 로그인 페이지 커스터마이징을 위한 프로젝트 환경 구성
먼저, 스프링 부트 기반의 프로젝트를 생성합니다. pom.xml
에 스프링 시큐리티 의존성을 추가하여 프로젝트를 구성합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2. 커스텀 로그인 페이지 생성
다음으로, 커스텀 로그인 페이지를 생성합니다. resources/templates
폴더 안에 login.html
파일을 작성합니다. 해당 파일은 기본 로그인 페이지의 레이아웃을 디자인할 수 있습니다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form th:action="@{/login}" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username" required autofocus/>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required/>
</div>
<button type="submit">Login</button>
</form>
</body>
</html>
3. 스프링 시큐리티 설정
마지막으로, WebSecurityConfig
클래스를 생성하여 스프링 시큐리티를 설정합니다. 커스텀 로그인 페이지를 사용하도록 설정하고, 기본 로그인 경로를 오버라이드하여 커스텀 로그인 페이지로 이동하도록 지정합니다.
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/custom-login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/custom-login")
.permitAll();
}
}
결론
이제 스프링 시큐리티를 사용하여 로그인 페이지를 커스터마이징하는 방법을 알아보았습니다. 해당 설정을 적용하면 보다 유연하고 사용자 친화적인 로그인 페이지를 제공할 수 있습니다.
참고문헌: