码迷,mamicode.com
首页 > 其他好文 > 详细

核心组件之UserDetailService

时间:2018-08-04 11:54:55      阅读:606      评论:0      收藏:0      [点我收藏+]

标签:name   style   表示   用户   bcd   内存   存储   lin   分享图片   

简介:
  • UserDetails => Spring Security基础接口
  • Authentication => 认证对象,可通过SecurityContext获得
  • principal => 用户信息对象,是一个Object,通常可转为UserDetails
 
UserDetails
    用于表示一个principal,但是一般情况下是作为(你所使用的用户数据库)和(Spring Security 的安全上下文需要保留的信息)之间的适配器。
 
什么时候提供UserDetails对象?如何做到?
有一个特殊的接口 => UserDetailService
这个接口只有一个方法 => loadUserByUsername(String username)
技术分享图片
 
何处用到?
    当认证成功后,UserDetails将被用户构建Authentication对象,存储在SecurityContextHolder中。
 
UserDetails既然是一个接口,那它有哪些实现类?
  • InMemoryDaoImpl => 存储于内存
  • JdbcDaoImpl => 存储于数据库(磁盘)
  • 或自定义
 
误解 => UserDetailService 负责认证用户
    实际上:UserDetailService只单纯地负责存取用户信息,除了给框架内的其他组件提供数据外没有其他功能。而认证过程是由AuthenticationManager来完成的。(大多数情况下,可以通过实现AuthenticationProvider接口来自定义认证过程
 
 

核心组件之UserDetailService

标签:name   style   表示   用户   bcd   内存   存储   lin   分享图片   

原文地址:https://www.cnblogs.com/longfurcat/p/9417358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!