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

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


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

查看所有标签

猜你喜欢:

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

Designing Data-Intensive Applications

Designing Data-Intensive Applications

Martin Kleppmann / O'Reilly Media / 2017-4-2 / USD 44.99

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, w......一起来看看 《Designing Data-Intensive Applications》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具