内容简介:这个接口的核心就是
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图:
上面这个模型可以实现最细颗粒度的鉴权。
∎
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
代码大全(第2版)
[美] 史蒂夫·迈克康奈尔 / 金戈、汤凌、陈硕、张菲 译、裘宗燕 审校 / 电子工业出版社 / 2006-3 / 128.00元
第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初......一起来看看 《代码大全(第2版)》 这本书的介绍吧!