Spring Security入门一:基本配置及使用

Spring Security入门一:基本配置及使用

一、简介

    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实现:





















你可能感兴趣的:(Spring,Security)