티스토리 뷰

Framework/Spring

Spring Security 3.1

Su-Dong, Han 2012. 2. 19. 16:44

프로젝트에서 기존의 로그인 기능과 별개로 공통 로그인 기능이 필요해 검토해 보게 되었습니다.

전자정부표준프레임워크에서 채택한 2.0.4 버전으로 시도를 하다가,

사용자 정보에 대한 이슈가 생겨 3.1 버전을 선택했습니다.

1. 라이브러리 
 -  spring-security-core
 -  spring-security-web
 -  spring-security-config

 springsource에서 가이드 하는 라이브러리 이며, pom.xml 설정은 아래와 같습니다.

         
            org.springframework.security
            spring-security-core
            3.1.0.RELEASE
         
        
            org.springframework.security
            spring-security-web
            3.1.0.RELEASE
         
        
            org.springframework.security
            spring-security-config
            3.1.0.RELEASE
        
2. web.xml 설정
 - filter, filter-mapping, context-param 정보 추가

    
        springSecurityFilterChain
        org.springframework.web.filter.DelegatingFilterProxy
    

    
      springSecurityFilterChain
      *
    

    
        contextConfigLocation
        
            classpath*:spring/context-security.xml
        
    


3. context-security.xml 설정
 - <http> : url 접근권한 및 로그인/로그아웃, 접근거부 처리 등의 정보 설정
 - <authentication-manager>, <authentication-provider> : 사용자 정보 설정(text, DB기반)
 - 추가적으로 bean을 등록하고 필요에 따라 handler로 지정 가능

    
        
        
        
        
        
        
        
        
        
        
    

    
        
            





            
            
            
            
        
    

    
    


4. 로그인 후처리 핸들러 작성
 - 로그인 후 처리에 대해 에 설정한 핸들러 작성
 - ex>기본적으로 제공하는 구조 외 사용자 정보가 필요한 경우 처리
         로그인 후 페이지 이동에 대한 처리 

여기까지 설정이 되면 위에 설정한 url에 대한 권한 체크가 이루어지게 됩니다.

로그인을 공통화 하면서 세션에 대한 처리는 간단해졌지만

몇개의 분리된 시스템의 메인화면, 로그아웃 후 화면 등을 설정하는게 조금 번거로울 수 있습니다.

저의 경우 공통 메인화면을 만들어 그 화면에서 각 시스템의 메인화면을 호출하는 형태로 처리했지만

사용자의 관점에서 조금 불편할 수 있을거 같긴 하네요.. ^^;

참고 : 
springsource 보기

 
댓글