스프링(Spring)에서 세션(Session) 기반 로그인 처리하기

|



일반적으로 쿠키나 세션을 활용해서 로그인 처리를 많이 한다. 

스프링 기반에서 인터셉트를 통해 세션 로그인 처리를 하는 부분을 정리해 보려고 한다. 


전체적인 과정은 다음과 같다. 

로그인 체크 인터셉터를 만든 다음, applicationContext.xml에 해당 인터셉터를 설정한다. 

마지막으로 로그인 처리 중에 세션에 정보를 저장하면 된다. 

이후, 인터셉터가 지정된 URL에 접근할 때는 로그인 체크 인터셉터를 통해서 로그인 여부를 확인하게 된다. 


인터셉터를 활용한 흐름도는 다음과 같다. 



로그인 체크 인터셉터

먼저 세션 정보가 있는지 여부를 확인하는 인터셉터를 만들어 보자. 


세션이 존재하지 않거나, 사용자 정보가 세션에 없으면 다시 로그인 화면으로 이동하도록 구성한 인터셉터이다. 

이어서 위 인터셉터를 적용할 페이지를 applicationContext.xml에 다음과 같이 지정한다. 



applicationContext.xml 설정


다른 부분은 생략하고 <mvc:interceptors>로 인터셉터를 설정하는 부분만 포함했다. 

"/mini.do"와 같이 특정 페이지만 지정할 수 있고, 

"/admin/**"와 같은 형태로 특정 폴더 아래를 모드 지정할 수도 있다. 


세션 설정

이제 로그인 처리 중에 다음과 같이 세션에 정보를 등록하면 된다. 


마지막으로 사용하는 member VO 객체의 형태는 다음과 같다. 

Serializable을 구현한 부분만 참고하면 된다. 

"java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute" 에러가 발생할 경우에 Serializable을 구현해 줘야 한다. 





Trackback 0 And Comment 0