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模型

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


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

查看所有标签

猜你喜欢:

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

从莎草纸到互联网:社交媒体2000年

从莎草纸到互联网:社交媒体2000年

[英]汤姆·斯丹迪奇 / 林华 / 中信出版社 / 2015-12 / 58.00元

【内容简介】 社交媒体其实并不是什么新鲜的东西。从西塞罗和其他古罗马政治家用来交换信息的莎草纸信,到宗教改革、美国革命、法国大革命期间印制的宣传小册子,过去人类跟同伴交流信息的方式依然影响着现代社会。在报纸、广播和电视在散播信息上面统治了几十年后,互联网的出现使社交媒体重新变成人们与朋友分享信息的有力工具,并推动公共讨论走向一个新的模式。 汤姆•斯丹迪奇在书中提醒我们历史上的社交网络其......一起来看看 《从莎草纸到互联网:社交媒体2000年》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

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

HTML 编码/解码