반응형
스프링 프레임워크를 사용하면서 중복 로그인을 막는 가장 쉬운 방법은
스프링 시큐리티의 중복 로그인 방지 기능을 사용하는 방법이다.
스프링 시큐리티의 중복 로그인 방지 설정
http.sessionManagement()
.maximumSessions(1)
.maxSessionsPreventsLogin(false)
.expiredSessionStrategy(this.securitySessionExpiredStrategy())
.sessionRegistry(this.sessionRegistry);
설정을 간단하게 설명하면 maximumSessions 갯수를 1개로 지정하여 2개 이상 세션이 생성되지 않도록 한다.
이 설정을 사용하면 중복 로그인을 어느정도는 막을 수 있으나
톰캣에서 세션을 관리하는 어플리케이션에서는
가끔씩(?) 중복 로그인이 가능한 경우가 생긴다.
(연달아 계속 로그인을 시도해보면 확인할 수 있다.)
가끔 중복로그인이 발생해도 상관없으면 이 코드만 사용하고
중복 로그인을 완벽하게 막아야 하는 경우에는
별도로 처리 할 수 있는 로직이 필요하다.
* 참고로 Redis에 세션 관리를 할 경우나, OAuth2.0 로그인 기반에서는 해당 현상이 발생하지 않는다.
반응형
'개발' 카테고리의 다른 글
인텔리제이 .gitignore 사용하기 (0) | 2020.11.29 |
---|---|
js/css 파일 캐시 방지 처리 (0) | 2020.11.29 |
안드로이드/ios webview 자바스크립트로 뒤로가기 감지하기 (0) | 2020.11.27 |
톰캣에서 HTTP Method 설정하기 (0) | 2020.08.16 |
리눅스에서 apache + tomcat 연동 방법 (0) | 2020.08.16 |