第二章 Spring Security起步
来源:互联网 发布:房卡斗牛源码 编辑:程序博客网 时间:2024/05/01 04:24
名词解释
1、安全审计
2、认证
认证识别系统中的某一个用户,并将其与一个可信任的实体关联。
3、授权
授权保证授权过的用户能够对功能和数据进行恰当的访问。
第二章 Spring Security起步
核心概念
认证
Spring Security扩展了Java标准概念中的已认证安全实体(java.security.Principal),它被用来唯一标识一个认证过的实体。
安全实体等同于用户。
授权
涉及两个方面:
一:安全实体与权限的匹配关系(也叫角色)
二:分配权限检查给系统中要进行安全保护的资源。
对于一个资源,判断用户权限和资源需要权限是否有交集,即判断该用户是否可以访问该资源。
请求是怎样被处理的?
servlet请求按照一定的顺序从一个过滤器到下一个穿过整个过滤器链,最终到达目标servlet。与之相对的是,当servlet处理完请求并返回一个response时,过滤器链按照相反的顺序再次穿过所有的过滤器。
自动配置的选项为你建立了十个Spring Security的过滤器。
在auto-config场景下,发生了什么事情?
在Spring Security 3 中,使用auto-config会自动提供以下三个认证相关的功能:
*HTTP基本认证
*Form登录认证
*退出
用户是怎样认证的?
AbstractAuthenticationProcessingFilter:它在基于web的认证请求中使用。处理包含认证信息的请求,如认证信息可能是form POST提交的、SSO信息或者其他用户提供的。创建一个部分完整的Authentication对象以在链中传递凭证信息。
AuthenticationManager:它用来检验用户的凭证信息,或者会抛出一个特定的异常(校验失败的情况)或者完整填充Authentication对象,将会包含了权限信息。
AuthenticationProvider:它为AuthenticationManager提供凭证校验。一些AuthenticationProvider的实现基于凭证信息的存储,如数据库,来判定凭证信息是否可以被认可。
Authentication存储了用户的详细信息,包括唯一标识(用户名)、凭证信息(密码)以及本用户被授予的一个或多个权限(GrantedAuthoriry)。
spring_security_login是什么?我们怎么到达这个界面的?
spring_security_login在DefaultLoginPageGeneratingFilter中命名的。
UsernamePasswordAuthenticationFilter是通过<http>配置指令的<form-login>子元素来进行配置的。j_spring_security_check并不对应任何应用中的物理资源,它只是UsernamePasswordAuthenticationFilter监视的一个基于form登录的URL。
用户的凭证信息是在哪里被校验的?
<authentication-provider>声明默认谁实例化一个内置的实现,即DaoAuthenticationProvider。
DaoAuthenticationProvider是AuthenticationProvider的简单封装实现并委托UserDetailsService接口的实现类进行处理。UserDetailsService负责返回UserDetails的一个实现类。
什么时候校验不通过?
请求是怎样被授权的?
在Spring Security的默认过滤器中,最后一个servlet过滤器是FilterSecurityInterceptor,作用是判断一个特定的请求是被允许还是被拒绝。
在Spring Security中,AccessDecisionManager接口定义了两个简单而合理的方法,它们能够用于请求的决策判断流程:
*supports:这个逻辑操作实际上包含两个方法,它们允许AccessDecisionManager的实现类判断是否支持当前的请求。
*decide:基于请求的上下文和安全配置,允许AccessDecisionManager去核实访问是否被允许以及是否能够被接受。decide方法实际上没有返回值,通过抛出异常来表明对请求访问的拒绝。
- 第二章 Spring Security起步
- Spring Security起步
- spring security 起步一:框架搭建
- spring security起步二:自定义登录页
- spring security起步二:自定义登录页
- 第二章 Python起步
- spring security起步五:Remember Me功能实现
- spring security起步六:基于数据库的用户认证
- Spring Security教程第二部分-工程里添加spring-security
- OReilly - 使用Joomla - 第二章 快速起步
- 【汇编学习】第二章:程序起步
- Python宝典第二章:Python起步必备
- 《Python核心编程》第二章:Python起步
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步四:退出登录配置以及logout属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步四:退出登录配置以及logout属性详解
- JSON解析高手
- 拯救大兵雷诺(递归+回溯)
- android开发大牛博客
- hdu 5592 ZYB's Premutation(线段树查询第k大的数)
- Block练习
- 第二章 Spring Security起步
- android 接支付宝在4.1版本下报java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D
- lhgdialog弹窗自定义皮肤颜色
- jQuery设计思想
- ECMAScript 原始值和引用值
- 关于U盘中毒,文件全变成快捷方式
- 绿色免安装版myql注册删除服务指令
- ORACLE ROLLUP和CUBE的使用
- 什么是静电?