spring-security的authentication模型

栏目: 后端 · 发布时间: 6年前

内容简介:这个接口的核心就是

spring-security 的核心是 AuthenticationProvider

spring-security的authentication模型

这个接口的核心就是 authenticate() 方法,它接受一个 Authentication 类型的参数:

spring-security的authentication模型

这个 Authentication 类型的两个核心参数就是 PrincipalCredentials 。此外, Authentication 还接受更细致的权限划分,提供一个 getAuthorities() 方法,去接受一系列的 GrantedAuthority 类型的参数:

spring-security的authentication模型

上面是 spring-security 的一个基础的架子。后续核心要看的重点是 DaoAuthenticationProvider

spring-security的authentication模型

上面这个 DaoAuthenticationProvider 是基于数据库的。

spring-security的认证核心是 userDetailServiceSpring Security: Database-backed UserDetailsService )。认证用的用户表很基础:

spring-security的authentication模型

就是「用户名」和「密码」。 JdbcDaoImpl 是跟数据库打交道的class:

spring-security的authentication模型

spring-security 里面定义了用户表,和围绕着用户表的方法,不需要自己实现了。并且这个用户模型可以容纳所有的「认证」与「鉴权」的需求。从最简单的「用户名」+「密码」,到最复杂的「ACL」列表,全部都定义好了,根据自己的需求来使用就可以了。

多说一句spring的「鉴权」(Authorization)模型: AuthorizationAuthentication 是分开的, Authentication 只管「认证」。下面是一个 spring-security 实现的 vote based 鉴权模型( 11. Authorization ):

spring-security的authentication模型

基于acl的鉴权模型( An Introduction to Spring Security ACL )位于 spring-security-acl 子项目里:

$ pwd
/Users/weli/works/spring-security/acl

它的项目里包含了数据库的建库 sql 脚本:

spring-security的authentication模型

我们倒入 sql ,创建库表:

spring-security的authentication模型

我们用 vp uml 反向工程这个数据库,得到er图:

spring-security的authentication模型

上面这个模型可以实现最细颗粒度的鉴权。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UNIX环境高级编程

UNIX环境高级编程

W.Richard Stevens、Stephen A.Rago / 尤晋元、张亚英、戚正伟 / 人民邮电出版社 / 2006年 / 99.00元

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息......一起来看看 《UNIX环境高级编程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具