UserDetailsService详解

UserDetailsService详解本文来说下UserDetailsService相关的知识与内容文章目录概述概述

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

本文来说下UserDetailsService相关的知识与内容


概述

Spring Security中进行身份验证的是AuthenticationManager接口,ProviderManager是它的一个默认实现,但它并不用来处理身份认证,而是委托给配置好的AuthenticationProvider,每个AuthenticationProvider会轮流检查身份认证。检查后或者返回Authentication对象或者抛出异常。

验证身份就是加载响应的UserDetails,看看是否和用户输入的账号、密码、权限等信息匹配。此步骤由实现AuthenticationProvider的DaoAuthenticationProvider(它利用UserDetailsService验证用户名、密码和授权)处理。包含 GrantedAuthority 的 UserDetails对象在构建 Authentication对象时填入数据。

在这里插入图片描述


UserDetailsService源码

UserDetailsService源码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package org.springframework.security.core.userdetails;

public interface UserDetailsService { 
   
    UserDetails loadUserByUsername(String var1) throws UsernameNotFoundException;
}

Jetbrains全家桶1年46,售后保障稳定

源码里面的内容很简单,只有一个loadUserByUsername方法。返回值是UserDetails,我们来看下这个类的源码

UserDetails类的源码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package org.springframework.security.core.userdetails;

import java.io.Serializable;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;

public interface UserDetails extends Serializable { 
   
    Collection<? extends GrantedAuthority> getAuthorities();

    String getPassword();

    String getUsername();

    boolean isAccountNonExpired();

    boolean isAccountNonLocked();

    boolean isCredentialsNonExpired();

    boolean isEnabled();
}

user类中的常见方法

在这里插入图片描述

user类的类图结构

在这里插入图片描述


本文小结

本文介绍了UserDetailsService接口相关的知识与内容

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213488.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sqlyog community_sqlyog10.0安装教程

    sqlyog community_sqlyog10.0安装教程sqlyog社区版是一款十分不错的MySQL数据库管理工具,它可以帮助用户们十分快速的去管理自己的数据库,所以喜欢的话,就来下载试试吧!软件介绍SQLyog是一个简洁高效功能强大的,GUI图形化用户管理接口的MySQL数据库管理工具它可以让您从世界的任何角落透过网络来维护远端的MySQL数据库。sqlyog社区版的tabbed界面可进行重新排序,更快的键盘操作快捷方式,新增FORM视图选项(…

    2022年9月16日
    1
  • JsonPath使用

    JsonPath使用JSONPath-是xpath在json的应用。xml最大的优点就有大量的工具可以分析,转换,和选择性的提取文档中的数据。XPath是这些最强大的工具之一。如果可以使用xpath来解析json,以下的问题可以被解决: 1,数据不使用特殊的脚本,可以在客户端交互的发现并取并获取。2,客户机请求的JSON数据可以减少到服务器上的相关部分,这样可以最大限度地减少服务器响应的带宽使用…

    2022年6月18日
    28
  • invocationHandler_handlermapping原理

    invocationHandler_handlermapping原理动态代理是很多框架和技术的基础,spring的AOP实现就是基于动态代理实现的。了解动态代理的机制对于理解AOP的底层实现是很有帮助的。      查看doc文档就可以知道,在java.lang.reflect包中有一个叫Proxy的类。下面是doc文档对Proxy类的说明:      “Adynamicproxyclass(simplyreferredtoasa

    2025年7月11日
    0
  • python 文件路径名,文件名,后缀名的操作

    python 文件路径名,文件名,后缀名的操作需要使用路径名来获取文件名,目录名,绝对路径等等。使用os.path模块中的函数来操作路径名。下面是一个交互式例子来演示一些关键的特性:对于任何的文件名的操作,你都应该使用os.path模块,

    2022年7月5日
    23
  • 读写TGA文件

    偶尔会遇到处理TGA文件的需求,封装成类以后再用到会很方便。    类的名字叫做myTGA,提供以下功能:    1:读取文件;    2:保存文件到指定目录;    3:获取图像信息(宽,高,深度/像素占用比特数,像素通道数);    4:访问像素;    5:转换到AUX_RGBImageRec 格式;    6:设计优良的结构易于扩展(目前只支

    2022年4月6日
    47
  • 概率论:假设检验-t检验、卡方检验和AD-Fuller test

    概率论:假设检验-t检验、卡方检验和AD-Fuller testhttp://blog.csdn.net/pipisorry/article/details/51184556卡方检验Chi-Squarethechi-squaretestmeasuresdependencebetweenstochasticvariables,sousingthisfunction“weedsout”thefeaturesthatare…

    2022年6月19日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号