spring-security的authentication模型

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

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

spring-security 的核心是 AuthenticationProvider :

spring-security的authentication模型

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

spring-security的authentication模型

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

spring-security的authentication模型

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

spring-security的authentication模型

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

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

spring-security的authentication模型

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

spring-security的authentication模型

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

多说一句spring的「鉴权」(Authorization)模型: Authorization 和 Authentication 是分开的, 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模型

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

∎


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

查看所有标签

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

Linux/Unix设计思想

Linux/Unix设计思想

甘卡兹 / 漆犇 / 人民邮电出版社 / 2012-3-28 / 39.00元

《Linux\Unix设计思想/图灵程序设计丛书》内容简介:将Linux的开发方式与Unix的原理有效地结合起来,总结出Linux与Unix软件开发中的设计原则。《Linux\Unix设计思想/图灵程序设计丛书》前8章分别介绍了Linux与Unix中9条基本的哲学准则和10条次要准则。第9章和第10章将Unix系统的设计思想与其他系统的设计思想进行了对比。最后介绍了Unix哲学准则在其他领域中的应......一起来看看 《Linux/Unix设计思想》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

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

HEX CMYK 互转工具