Spring Security3学习笔记

一、认证和授权的概念必须牢记,是学好springSecurity的关键。

        1、认证(authentication)  认证是鉴别我们应用中的用户是他们所声明的那个人。认证有3种场景:凭据为基础的认证(用户名、密码)、两要素认证(密码和物理设备)、硬件认证。

        2、授权(authorization) 授权涉及两个方面,他们共同描述对安全系统的可访问性:已经认证的安全实体与一个或者多个权限的匹配关系、分配权限给系统需要保护的资源


        用户请求简单的说分为两个环节:首先被认证管理器(AuthenticationManager)拦截进行认证此环节是认证的过程;认证后的请求又被访问决策管理器(AccessDecisionManager)拦截验证权限,此环节是授权的过程。


二、用户请求是如何处理的

        SpringSecurity 在实现上依赖代理和Servlet过滤器,来实现绕在web应用请求前后的功能层。其在XML配置文件中的自动配置属性,建立了10个过滤器,他们通过JavaEE的过滤器链按照顺序组合起来。servlet请求按照一定的顺序从一个过滤器到下一个过滤器,最终达到Servlet。与之相对的是,Servlet处理完请求并返回一个Response后,过滤器链按照相反的顺序再次穿过所有的过滤器。


        自动配置的选项创建了10个过滤器,理解这些过滤器的默认行为以及他们在哪里是如何配置的,对使用SpringSecurity的高级功能至关重要。

        1、org.spring.security.web.context.SecurityContextPersistenceFilter

        负责从SecurityContextRepository获取或存储SecurityContext。SecurityContext代表了用户安全和认证过的session。

        2、org.spring.security.web.authentication.logout.LogoutFilter

        监控一个实际为退出功能的URL(默认为/j_spring_security_logout),并且在URL匹配时完成用户的退出功能。

        3、org.spring.security.web.authentication.UsernamePasswordAuthenticationFilter

        监控一个使用用户名和密码基于form认证的URL(默认为/spring_security_check,并在URL匹配的情况下验证该用户。

        4、org.spring.security.web.authentication.ui.DefaultLoginPageGeneratingFilter

        监控一个要进行基于form或OpenID认证的URL(默认为/spring_security_login),并生成展现登录form的HTML。

        5、org.spring.security.web.authentication.www.BasicAuthenticationFilter

        监控HTTP基础认证的头信息并进行处理

        6、org.spring.security.web.savedrequest.RequestCacheAwareFilter

        用户用户登录成功后,重新恢复因为登录被打断的请求

        7、org.spring.security.web.servletapi.SecurityContextHolderAwareRequestFilter

        用一个扩展了HttpServletRequestWrapper的子类(org.spring.security.web.servletapi.SecurityContextHolderAwareRequestWrapper)包装HttpServletRequest。它为请求处理器提供了额外的上下文信息。

        8、org.spring.security.web.authentication.AnonymousAuthenticationFilter

        如果用户到这一步还没有经过认证,将会为这个请求关联一个认证的token,标识此用户是匿名的。

        9、org.spring.security.web.session.SessionManagementFilter

        根据认证的安全实体信息跟踪session,保证所有关联一个安全实体的session都能被跟踪到。

        10、org.spring.security.web.access.ExceptionTranslationFilter

        解决在处理一个请求时产生的指定异常。

        11、org.spring.security.web.access.intercept.FilterSecurityInterceptor

        简化授权和访问控制决定,委托一个AccessDecisionManager完成授权的判断。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值