Spring Security 入门

Spring Security 入门


1、Spring Security 简介

        Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。



2、Spring Security 入门 Demo

(1)导入依赖,spring 和 spring security 相关



  4.0.0

  demo
  springsecurity
  1.0-SNAPSHOT
  war

  springsecurity Maven Webapp


  
    4.2.4.RELEASE
  

  

    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    

    
      org.springframework
      spring-webmvc
      ${spring.version}
    

    
      org.springframework
      spring-context-support
      ${spring.version}
    

    
      org.springframework
      spring-test
      ${spring.version}
    

    
      org.springframework
      spring-jdbc
      ${spring.version}
    

    
      org.springframework.security
      spring-security-web
      4.1.0.RELEASE
    

    
      org.springframework.security
      spring-security-config
      4.1.0.RELEASE
    

    
      javax.servlet
      servlet-api
      2.5
      provided
    


  
  
    
      
      
        org.apache.maven.plugins
        maven-compiler-plugin
        3.2
        
          1.7
          1.7
          UTF-8
        
      
      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        
          
          9090
          
          /
        
      
    
  


(2)在web.xml中配置 spring security 的过滤器

	

  	 
		contextConfigLocation
		classpath:spring-security.xml
	 
	 
		
			org.springframework.web.context.ContextLoaderListener
		
	 
	
	   
		springSecurityFilterChain  
		org.springframework.web.filter.DelegatingFilterProxy  
	   
	   
		springSecurityFilterChain  
		/*  
	 
	

注意:其中filter-name的值是固定的。值为:springSecurityFilterChain


(3)编写spring-security.xml 文件




	
	
		
		
		
		
	

	
	
		
			
				
				
			
		
	
		


(4)运行测试
a、直接访问 index.html

Spring Security 入门_第1张图片

直接打回到spring security给我们生成的登录页面

b、随便输入账号和密码

Spring Security 入门_第2张图片


提示错误信息


c、输入配置文件中配置的正确的用户名和密码

Spring Security 入门_第3张图片

注意:在第一次登录的时候,会报错,错误提示:没有找到favicon.ico的文件,返回重新登陆一次就行了。也可以找一个facivon.ico的小图标放在根目录下,可以把tomcat中webapps中的ROOT中的favion.ico拿过来。这样第一次登录也不会报错。

Spring Security 入门_第4张图片




(5)使用自己写的登录页来进行登录



    
    登录


这是一个登录页


账号:
密码:

(6)在配置文件中,配置我们的登录页

Spring Security 入门_第5张图片


(7)测试

Spring Security 入门_第6张图片

 原因:/login.html 资源也是需要权限才能访问的路径,所以循环重定向,导致报错。


(8)配置login.html,无需访问权限
Spring Security 入门_第7张图片

(9)再次运行测试

Spring Security 入门_第8张图片

a、直接访问index.html

Spring Security 入门_第9张图片


b、使用不正确的账号密码登录

Spring Security 入门_第10张图片

这个错误无论账号密码正确还是错误都有。

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者SessionRiding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。这是Spring security 的一种设计机制,自定义了一个 头,防止伪造请求对网站进行攻击。

解决方法:关闭Spring security 的这个功能即可。在http中配置子标签

登录

Spring Security 入门_第11张图片



c、正确的账号密码,进行登录

Spring Security 入门_第12张图片




你可能感兴趣的:(个人成长,技术点,Spring,Secutiry)