SpringMVC+Spring Security5集成案例(一)

权限之前一直用Apache Shiro,最近项目上用到Spring Security,所以就把集成步骤写下来。

首先我们创建一个mavan项目,

1.集成所需的jar包


    5.2.2.RELEASE
    5.2.1.RELEASE
    1.2
    2.5


 
    
    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
    
      org.springframework.security
      spring-security-web
      ${spring.security.version}
    
    
      org.springframework.security
      spring-security-config
      ${spring.security.version}
    

    
      jstl
      jstl
      ${jstl.version}
    
    
      javax.servlet
      servlet-api
      ${servlet.version}
      provided
      
    
  


    ssmvc
     
      
         
           org.apache.maven.plugins
           maven-compiler-plugin
           3.6.0
           
             1.8
             1.8
           
         
        
          org.apache.tomcat.maven
          tomcat7-maven-plugin
          2.2
          
            8000
            /ssmvc
            tomcat7
          
        
      
    
  

2.web.xml配置




  
  
    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFilterProxy
  
  
    springSecurityFilterChain
    /*
  

  
  
    org.springframework.web.context.ContextLoaderListener
  
  
    contextConfigLocation
    
      classpath:applicationContext.xml
      classpath:spring-security.xml
    
  

  
  
  
    DispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
  
  
    DispatcherServlet
    /
  

applicationContext.xml



spring-mvc.xml



     
    

    

    

    
        
        
    

spring-security.xml




     
        
        
        
    

    
        
            
                
            
        
    

3.运行

此时我们运行之后,会弹出用户名密码,我们输入上方的用户名密码即可登录。这样我们第一步就算成功了。

错误:

严重: Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' available
这个错误是我们没有在spring-sercurity中添加
 
        
    

    

    

说明:

mvc:annotation-driven的作用

这个配置默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter ,分别为HandlerMapping的实现类和HandlerAdapter的实现类,但从3.1.x版本开始对应实现类改为了RequestMappingHandlerMapping和RequestMappingHandlerAdapter。
 
HandlerMapping的实现类的作用
实现类RequestMappingHandlerMapping,它会处理@RequestMapping 注解,并将其注册到请求映射表中。
 
HandlerAdapter的实现类的作用
实现类RequestMappingHandlerAdapter,则是处理请求的适配器,确定调用哪个类的哪个方法,并且构造方法参数,返回值。
 
当配置了mvc:annotation-driven/后,Spring就知道了我们启用注解驱动。然后Spring通过context:component-scan/标签的配置,会自动为我们将扫描到的@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理我们的请求。

你可能感兴趣的:(java,spring,intellij-idea,spring-security,spring-mvc)