内容简介:这个接口的核心就是
spring-security
的核心是 AuthenticationProvider
:
这个接口的核心就是 authenticate()
方法,它接受一个 Authentication
类型的参数:
这个 Authentication
类型的两个核心参数就是 Principal
和 Credentials
。此外, Authentication
还接受更细致的权限划分,提供一个 getAuthorities()
方法,去接受一系列的 GrantedAuthority
类型的参数:
上面是 spring-security
的一个基础的架子。后续核心要看的重点是 DaoAuthenticationProvider
:
上面这个 DaoAuthenticationProvider
是基于数据库的。
spring-security的认证核心是 userDetailService
( Spring Security: Database-backed UserDetailsService )。认证用的用户表很基础:
就是「用户名」和「密码」。 JdbcDaoImpl
是跟数据库打交道的class:
spring-security
里面定义了用户表,和围绕着用户表的方法,不需要自己实现了。并且这个用户模型可以容纳所有的「认证」与「鉴权」的需求。从最简单的「用户名」+「密码」,到最复杂的「ACL」列表,全部都定义好了,根据自己的需求来使用就可以了。
多说一句spring的「鉴权」(Authorization)模型: Authorization
和 Authentication
是分开的, Authentication
只管「认证」。下面是一个 spring-security
实现的 vote based
鉴权模型( 11. Authorization ):
基于acl的鉴权模型( An Introduction to Spring Security ACL )位于 spring-security-acl
子项目里:
$ pwd /Users/weli/works/spring-security/acl
它的项目里包含了数据库的建库 sql
脚本:
我们倒入 sql
,创建库表:
我们用 vp uml
反向工程这个数据库,得到er图:
上面这个模型可以实现最细颗粒度的鉴权。
∎
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 能量视角下的GAN模型(三):生成模型=能量模型
- 提高模型准确率:组合模型
- JVM内存模型 与 JMM内存模型
- Golang并发模型:轻松入门流水线模型
- C++11 中的内存模型(上):内存模型基础
- 机器学习中的判别式模型和生成式模型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。