首页 > 其他分享 >UsernamePasswordAuthenticationToken 类的构造器逻辑,来控制 isAuthenticated 的默认值

UsernamePasswordAuthenticationToken 类的构造器逻辑,来控制 isAuthenticated 的默认值

时间:2025-01-13 23:44:12浏览次数:1  
标签:Object UsernamePasswordAuthenticationToken authorities credentials 默认值 super isA

public class UsernamePasswordAuthenticationToken extends AbstractAuthenticationToken {
private final Object principal;
private Object credentials;

// 构造器 1:未认证时调用
public UsernamePasswordAuthenticationToken(Object principal, Object credentials) {
super(null); // authorities 为 null
this.principal = principal;
this.credentials = credentials;
setAuthenticated(false); // 未认证,明确设置为 false
}

// 构造器 2:已认证时调用
public UsernamePasswordAuthenticationToken(Object principal, Object credentials,
Collection<? extends GrantedAuthority> authorities) {
super(authorities); // 设置 authorities
this.principal = principal;
this.credentials = credentials;
super.setAuthenticated(true); // 已认证,明确设置为 true
}

// 省略了其他方法...
}

标签:Object,UsernamePasswordAuthenticationToken,authorities,credentials,默认值,super,isA
From: https://www.cnblogs.com/zyb-luckey/p/18669633

相关文章

  • layui框架中利用xm-select实现下拉多选功能,以及如何设置默认值
    xm-select.js的下载地址:https://gitee.com/maplemei/xm-select/tree/master/dist引入xm-select.js<scriptsrc="/static/tools/pear/component/pear/xm-select.js"></script>dom元素<divid="doors"></div>layui中使用layui.......
  • ES6的解构赋值时如何设置默认值?
    在ES6中,解构赋值允许你设置默认值。这在你想要确保某个变量在被解构时有一个特定的值(如果原始对象中没有该属性或者该属性的值是undefined)时非常有用。以下是一些设置默认值的示例:1.对象的解构赋值constobj={a:1,b:2};const{a=3,b=4,c=5}=obj;console......
  • el-select组件改造成多选显示多个标签加数字标签的形式并且点击某个默认值不允许删除
     单独设置一个文件当做公共组件调用<template><main><el-selectref="select"v-model="values"multiplestyle="width:100%":placeholder="placeholder"@change="handleChang......
  • gorm默认值不更新问题
    问题描述原有数据结构,如下: go代码解读复制代码typeAdvConfirmstruct{ IDint`gorm:"column:id;primary_key"json:"id"` StaffIDint`gorm:"column:staff_id"json:"staff_id"` AdvertiserID......
  • sqlserver查字段的默认值
    在SQLServer中,您可以通过查询系统视图来查找字段的默认值。以下是一些查询字段默认值的常用方法:使用 INFORMATION_SCHEMA.COLUMNS 视图:SELECTTABLE_NAME,COLUMN_NAME,COLUMN_DEFAULTFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME=......
  • Python字典默认值处理的优雅艺术
    在Python编程中,字典是最常用的数据结构之一,它就像我们生活中的图书目录,通过索引可以快速找到对应的内容。但在实际开发中,经常会遇到一个问题:当我们要查找的键不存在时,该如何优雅地处理?传统的处理方式许多程序员,特别是初学者,习惯用if-else来处理这种情况:user_scores={'Ali......
  • 深入理解MySQL中的默认值:从NULL到数据完整性
    深入理解MySQL中的默认值:从NULL到数据完整性引言在数据库设计中,字段的默认值是一个看似微不足道,却可能引发大问题的话题。特别是在MySQL中,字段的默认值处理方式直接影响数据的完整性和一致性。本文将深入探讨MySQL中默认值的机制,并通过实例引导你理解如何在实际开发中正确处理默......
  • vue el-select 设置默认值后选项无法切换
    解决办法:@change="$forceUpdate()"添加这个即可 完整代码:<template><el-form-itemlabel="数据类型"><el-selectv-model="queryParams.searchDataType"placeholder="请选择数据类型"clearable@change="$forceUpdat......
  • 结构体成员的默认值是如何使用的呢?可以对默认值进行修改吗?
    问题描述:根据下列代码和结果回答下列问题。//Createdby黑马程序员.#include"iostream"usingnamespacestd;intmain(){structStudent{stringname;//成员1,姓名stringmajor_code="003032";//成员2专业代码,拥有默认值0......
  • 修改Exchange用户每分钟/每天的发送邮件数量的默认值MessageRateLimit和RecipientRate
    1分钟内连续多封邮件发送失败了,导致大量邮件堵塞。经查,报有下面的错误:4214.4.2Messagesubmissionrateforthisclienthasexceededtheconfiguredlimit这是因为从Exchange2010开始,默认每分钟发送的邮件封数限制为5封,这个限制参数是:MessageRateLimit  微软官网有给出此......