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接口相关的知识与内容

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • redis连接时报错:Could not connect to Redis at 192.168.1.21:6379: Connection refused

    redis连接时报错:Could not connect to Redis at 192.168.1.21:6379: Connection refusedbrewinstallredis安装好redis用terminal连接redis查看状态时时出现错误:[root@admin2bin]#redis-cli-h192.168.1.21infoReplicationCouldnotconnecttoRedisat192.168.1.21:6379:Connectionrefused但是查看127.0.0…

  • loadrunner 压力测试工具下载

    loadrunner 压力测试工具下载loadrunner下载 http://willvvv.iteye.com/blog/1198158 用户名密码: user1  user1

  • phpstorm2019激活码(破解版激活)

    phpstorm2019激活码(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • android studio的问题整理

    今天打算尝试使用android stutio,试试效果如何,遇到的问题就在这里整理出来 刚才遇到的:Android studio无法启动,错误信息: “Files in E:\Android\android-studio\system\caches are locked. Android Studio will not be able to start up.”尝试使用管理员权

  • pycharm2021.12.4最近激活码【中文破解版】

    (pycharm2021.12.4最近激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html41MD9IQHZL-eyJsaWNlbnNlSW…

  • 中小型企业局域网设计

    中小型企业局域网设计中小型企业局域网设计                                                        引言 ………………………………………………………………………………2一、公司简介………………………………………………………………………3二、企业需求分析…………………………………………………………………3三、总体设计方案…………………………………

发表回复

您的电子邮箱地址不会被公开。

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