[스프링] 스프링 시큐리티를 이용한 로그인 시도 제한

사용자가 로그인을 시도할 때 일정 횟수 이상 실패하면 해당 사용자에 대한 로그인 시도를 일정 시간 동안 제한할 수 있습니다. 이를 방지하기 위해 스프링 시큐리티에서는 Lockout 기능을 제공하며, 사용자가 지정된 횟수 이상의 로그인 실패를 하면 일정 시간 동안 해당 계정에 대한 로그인을 제한합니다.

아래는 스프링 시큐리티에서 로그인 시도 제한을 구현하는 간단한 방법입니다.

  1. pom.xml 파일에서 다음 종속성을 추가합니다.
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    
  2. application.properties 파일에 아래 구성을 추가합니다.
    spring.security.user.lockout.enabled=true
    spring.security.user.lockout.threshold=3
    spring.security.user.lockout.duration=60000
    
    • spring.security.user.lockout.enabled : Lockout 기능을 활성화할지 여부를 결정합니다.
    • spring.security.user.lockout.threshold : 실패한 로그인 시도 횟수의 임계값을 설정합니다.
    • spring.security.user.lockout.duration : 계정이 잠긴 후 대기해야 하는 시간(밀리초)을 설정합니다.
  3. 이제 스프링 시큐리티를 통해 사용자의 로그인 시도를 제한할 수 있게 되었습니다. 스프링 시큐리티의 로그인 시도 제한 기능을 사용하면 더욱 안전하고 신뢰할 수 있는 애플리케이션을 구축할 수 있습니다.

참고 문헌: