spring-security的authentication模型

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

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

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

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


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

查看所有标签

猜你喜欢:

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

引爆社群

引爆社群

唐兴通 / 机械工业出版社华章科技 / 2015-3 / 49

科技延伸媒介,移动互联网技术催生了微信等各种新的媒体;媒介更新人文,新媒介让互联网重回社群时代;人文重塑商业规则,社群时代的商业模式与法则究竟是怎样的?我们应该如何去适应和应对?本书提出的“新4C法则”为此给出了解决方案。关于如何运用这个法则,本书给出了详尽的阐述。但是,要利用好这个法则,需要我们对它有深入的理解。 场景(Context):移动互联网时代场景为王,所有基于移动互联网的产品和服......一起来看看 《引爆社群》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具