Spring Security入門1:基本構成と使用

8575 ワード

Spring Security入門1:基本構成と使用
一、紹介
Spring SecurityはSpring Coreに基づく特定のツールで実現され、主にアプリケーションのセキュリティを管理し、ユーザー権限のセットを提供するソリューションです.Springアプリケーションコンテキストで構成できるBeanのセットを提供し、Spring IoCとAOPを十分に利用し、アプリケーションシステムに宣言的なセキュリティアクセス制御機能を提供します.同じセキュリティフレームワークのApache Shiroもあり、Spring Securityを理解した後、両者を比較することができます.
二、配置と使用
1.pom.xmlファイルにmaven座標を追加する:Spring Security 3を使用する

    org.springframework.security
    spring-security-core
    3.2.0.RELEASE


    org.springframework.security
    spring-security-taglibs
    3.2.0.REALEASE


    org.springframework.security
    spring-security-web
    3.2.0.REALEASE


    org.springframework.security
    spring-security-config
    3.2.0.REALEASE

2.web.xmlでfilterを構成する
  
      
        springSecurityFilterChain  
          
            org.springframework.web.filter.DelegatingFilterProxy  
          
      
      
        springSecurityFilterChain  
        /*  
      
    
      
      
        sitemesh  
          
            org.sitemesh.config.ConfigurableSiteMeshFilter  
          
              
            ignore  
            true  
          
          
            encoding  
            UTF-8  
          
      
      
        sitemesh  
        /*  
     
  :filter-name   springSecurityFilterChain。 DelegatingFilterProxy init ,        filter-name, Spring      bean。
  ,     sitemesh   ,            security,    ,  security        sitemesh  ,                。
(security filter   springmvc/struts filter     )

sitemash(補足対象)
DelegatingFilterProxyのinitFilterBean()でfilterBeanの初期化を行い、doFilter()でfilterBeanがnullであるか否かを二次的に判断しnullであれば再びfilterBeanを初期化する
protected Filter initDelegate(WebApplicationContext wac) throws ServletException {
	Filter delegate = wac.getBean(getTargetBeanName(), Filter.class);
	if (isTargetFilterLifecycle()) {
		delegate.init(getFilterConfig());
	}
	return delegate;
}

3.spring-securityプロファイル



    
    
    

    
    
        
        
        
        
        
        
        
        
        
        
        

        
        

          
          

        
        
        
            
        

        
        
        
    

    
        
        
        
    

    
    
        
    

    
        
        
    

    
        
        
    
    
    
    
        
        
        
        
    
    
    
        
        
        
        
        
    

    
        
        
        
        
    

    
        
    
    
        
    
    


4.userDetailsService実装: