SpringSecurity入门到实战

  

前言:放假了一直在敲项目,之前敲的品优购项目,下载还没有更新文章,其实已经做完几个大模块了,之所以迟迟没有更新就是,敲着停不下来,因为写文章实在是太费时间了,就舍不得停下来,这段时间敲的太多了,还是更新一下,当做复习吧。这次讲的是SpringSecurity安全框架,可能相对比shiro来说SpringSecurity会复杂的多,更多的公司会使用shiro,因为shiro简单易上手,基本已经满足一般公司的安全登录操作了。但是还是要学一下SpringSecurity的,毕竟有大厂在用,也是春天家族中的东西。

  

一、spring security简介

  

spring security的核心功能主要包括:

  
      <李>认证(你是谁)   <李>授权(你能干什么)   <李>   

    * * *防护(防止伪造身份)

      

    其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是基本身份验证过滤器用来认证用户的身份,一个在spring security中一种过滤器处理一种认证方式。
     SpringSecurity入门到实战

      李   
  

比如,对于用户名密码认证过滤器来说,会检查是否是一个登录请求;是否包含用户名和密码(也就是该过滤器需要的一些认证信息);如果不满足则放行给下一个。

  
  

下一个按照自身职责判定是否是自身需要的信息,基本的特征就是在请求头中有授权:基本eHh5Onh5的信息。中间可能还有更多的认证过滤器。最后一环是FilterSecurityInterceptor,这里会判定该请求是否能进行访问其他服务,判断的依据是BrowserSecurityConfig中的配置,如果被拒绝了就会抛出不同的异常(根据具体的原因).Exception翻译过滤器会捕获抛出的错误,然后根据不同的认证方式进行信息的返回提示。

     

注意:绿色的过滤器可以配置是否生效,其他的都不能控制。

  

二,SpringSecurity入门实战

  
      <李>创建一个普通的maven工程,打包方式为战争李   <李>   

    在src/main/资源中加入如下文件

      

    spring-security.xml   

     <代码>
      & lt; ?xml version=" 1.0 " encoding=" utf - 8 " ?比;
      & lt;豆类:豆子xmlns=" http://www.springframework.org/schema/security "
      xmlns: bean=" http://www.springframework.org/schema/beans " xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "
      xsi: schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd”比;
      
      & lt; !——设置页面不登录也可以访问——比;
      & lt; http模式="/登录。html没有“安全=祝辞& lt;/http>="/login_error & lt; http模式。html没有“安全=祝辞& lt;/http>
      
      & lt; !——配置页面的拦截规则use-expressions=癴alse”是否启用?表达式——比;
      & lt; http use-expressions=" false "比;
      & lt; !——当前应乎必须属于ROLE_USER这个角色,才可以访问根目录以及所属子目录的资源——比;
      & lt; intercept-url模式=?* *”访问=癛OLE_USER”/比;
      & lt; !——开启表单登录的功能,比;
      & lt;表单登录登录页面="/登录。html " default-target-url="/索引。html/login_error.html“authentication-failure-url=/比;
      & lt; csrf禁用=" true "/比;
      & lt;/http>
      
      & lt; !——认证管理器——比;
      & lt; authentication-manager>
      & lt; authentication-provider>
      & lt; user-service>
      & lt; !——表示配置用户属于ROLE_USER并且配置用户登陆的密码和账号——比;
      & lt;用户名==癮dmin”密码“123456”政府=" ROLE_USER "/比;
      & lt;/user-service>
      & lt;/authentication-provider>
      & lt;/authentication-manager>  
      李   
  

& lt;/豆:beans>

  
 <代码>这里的很多东西都有注解了,说一下没有注解的标签,登录标签表示配置一个登陆的功能,登录页面="/login.html "表示配置我们自己登陆的页面路径,若是没有配置登录这个标签,SpringSecurity会自动帮我们生成一个登陆的页面,但是都不会用SpringSecurity给我们生成的登录页面,authentication-failure-url标示密码或者账号错误跳转的页面,default-target-url表示密码或者账号正确登陆后跳转的页面,& lt; csrf禁用=" true "/祝辞表示关闭csrf
  
  3.配置web . xml
   
  

& lt; ?xml version=?.0”;编码=癠TF-8" ?在
& lt; web xmlns: xsi=癶ttp://www.w3.org/2001/XMLSchema-instance"

SpringSecurity入门到实战