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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • APP性能测试工具——GT 使用方法

    APP性能测试工具——GT 使用方法参考链接:https://www.cnblogs.com/syw20170419/p/7228145.html?utm_source=itdadao&utm_medium=referralGT官方使用介绍文档地址:https://gt.qq.comGT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE,IntegratedDebugEnvi…

    2022年6月28日
    56
  • 华为电脑如何投屏到电视linux,华为mate10/mate10pro怎么投屏至电视或电脑上面?「建议收藏」

    一、使用华为2代DOCK实现手机连接大屏说明手机投屏输出接口为Type-C,支持通过转换器转换成标准的DP、HDMI、MiniDP、VGA、DVI等接口。考虑到设备的兼容性和信号的转换,请优先选择DP、HDMI接口。1.打开大屏显示器;2.将VGA直连线(两端都是VGA接口)的一端连接大屏,另一端连接至华为2代DOCK;3.将华为2代DOCK(扩展坞)的Type-C接口(USB-C接口)连接到华…

    2022年4月6日
    733
  • teamviwer-无限绑定

    teamviwer-无限绑定

    2021年5月18日
    164
  • 常见动态路由协议_动态路由协议执行哪两项任务

    常见动态路由协议_动态路由协议执行哪两项任务路由器要转发数据必须先配置路由数据,通常根据网络规模的大小可设置静态路由或设置动态路由。静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源。      常见的动态路…

    2025年8月2日
    2
  • 风控决策引擎经验

    风控决策引擎经验转载自https://mp.weixin.qq.com/s/LDcquVOTlCKJluyWG3AGAA一套完整的风控体系,在风控中,少不了决策引擎,今天就浅谈一下风控决策引擎。一、优先级风控决策引擎是一堆风控规则的集合,通过不同的分支、层层规则的递进关系进行运算。而既然是组合的概念,则在这些规则中,以什么样的顺序与优先级执行便额外重要。风控系统的作用在于识别绝对风控与标识相对风险…

    2022年6月15日
    50
  • httprunner(11)运行测试报告「建议收藏」

    httprunner(11)运行测试报告「建议收藏」前言受益于pytest的集成,HttpRunnerv3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告内置html报告pyt

    2022年7月31日
    5

发表回复

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

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