认证通过后显示当前认证用户名|学习笔记

简介: 快速学习认证通过后显示当前认证用户名

开发者学堂课程【Spring Security知识精讲与实战演示(二)认证通过后显示当前认证用户名】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/731/detail/13046


认证通过后显示当前认证用户名

 

显示当前通过的认证用户名。如下图,可以看到现在虽然认证通过了,但是在当前的这个页面上并不能看出当前认证的用户是谁。

image.png

需要在此页面显示当前认证的用户名,可以在头部的页面中找到显示用户名所在的位置。找到header:

image.png

在此页面会有一个注释掉的部分

image.png

上图的图片就是用户的头像。在图片的后面有一个span,可以将用户名显示在这个地方。在代码span class=”hidden-xs“

下面写上小马。当然现在刷新是没有的,因为这个页面还没有启动。开始启动:

image.png

刷新一下重新登录,输入用户名小马,点击登录。在主页面就可以看到用户名的显示。

image.png

如果想要是主页面出现用户名,在之前的思路中,代码span class=”hidden-xs“之后不能写死”小马”,需要写一个表达式{usernamekey},这个key值就是登录之后返回来的key值。通过后台查询得到用户名,之后返回即可。目前我们已经使用了security框架了,这一步无需手动操作。但是想要自己动手操作也是可以的。下面演示操作:

Securitycontextholder 这里也可以 getcontext 得到当前的context。Authenticcation就是当前认证通过的一个账户用户信息。接下来有一个getname,这个就是当前认证的用户名。可以在后台通过上述代码Securitycontextholder.getcontext().getAuthenticcation().getname()去实现。

也可以将上述代码注释到//从后台获取到当前认证通过后的用户名。可以将这个用户名返回放入到request阈中。写一个modden直接放入即可。

image.png

来到当前页面,key值写成{usernamekey}就可以正常显示。以上是自己用传统的方式做,目前已经使用了spring security,spring security里面是有动态标签的,可以通过动态标签展示当前用户通过的用户名。

想要使用动态标签,首先需要导入动态标签:

image.png

上图的第二句就是spring security标签,当然要想使用该标签,需要先拥有这个标签库,如下图taglibs:

image.png

必须有taglibs这个架包,如果没有这个架包,约束头是不能出来的<% %>。现在已经引入了标签库。接下来就可以得到用户名了。

image.png

在上图中注释的两段都可以得到用户名。

现在先来试一试第一段,启动;

image.png

直接点name就相当于authentication直接getname了。在后台中会发现也是得到authentication接下来getname

image.png

上图也是authentication然后拿到name值。内部属性。

一个是后台写法,一个是动态标签的写法,两种写法是一样的。

再次重新登录“小马”,点击登录,主页面右上方就会出现小马。因为名称就是英文,所以出现也是“xiaoma”。

将下图上面的注掉,将下面的放开。

image.png

上面的是怎么来的呢?

还是得到authentication,但是可以Securitycontextholder.getcontext().getAuthenticcation().getprincipal().就相当于principal。这时候需要强转成自己的用户对象。比如强转成Sysuser。强转之后要将整串代码整个括起来.这个是可以强转的,用user接收一下

Sysuser user

=(Securitycontextholder.getcontext().getAuthenticcation().

getprincipal();

现在需要对其进行强转,接下来在后面.getprincipal();现在get不出来,因为现在这样get就意味着是先get再强转;而先强转再get,需要将(Sysuser)Securitycontextholder.getcontext().getAuthenticcation().

getprincipal()整一段括起来之后.getusername。这样的话就需要将前面的Sysuser user=改为string sername=。如下图:

image.png

注意上下两句是一模一样的,没有区别的。对应这两句页面的写法就是的动态标签。这样就相当于将两个动态标签的底层原理解释完毕。

后台原理可以不理解,直接用页面上的写是可以的。需要记住代码了。

有了后台的写法的话,标签记不住可以用后台原理辅助记忆。注意单词需要拼写正确。

接下来再一次测试,输入用户名小马,继续点击登录。发现也是可以的。

以上就是认证通过之后显示用户名的操作。有两种方式:动态标签怎么写以及后台代码怎么写。

相关文章
全国各省份简称、省会、经纬度
经纬度严格可靠,使用工具一个个在地图测算出来的
|
存储 负载均衡 Linux
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
1877 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
机器学习/深度学习 边缘计算 人工智能
深度学习在图像处理中的应用与挑战
本文旨在探讨深度学习技术在图像处理领域的应用及其面临的主要挑战。通过分析深度学习模型如卷积神经网络(CNN)在图像分类、目标检测和图像分割等任务中的表现,揭示了其在提高精度、自动化特征提取方面的巨大潜力。同时,本文指出了当前深度学习在图像处理中的数据需求、计算资源消耗、模型解释性以及对抗攻击等方面的挑战,并提出了可能的解决方向。通过综合讨论,本文强调了深度学习在推动图像处理技术进步中的重要作用,同时也呼吁更多的研究以克服现有挑战,进一步拓宽其应用前景。
|
存储 Java 数据安全/隐私保护
HttpSession详解
HttpSession详解
|
数据采集 供应链 数据管理
|
数据安全/隐私保护 Python
python基础考核试题及答案
python基础考核试题及答案
604 0
|
JavaScript 测试技术 编译器
从0搭建Vue3组件库:引入单元测试框架Vitest
从0搭建Vue3组件库:引入单元测试框架Vitest
1317 0
|
缓存 移动开发 安全
android加固攻防梳理
对android加固的原理和攻破的思路梳理分析
649 1
android加固攻防梳理
|
弹性计算 Linux Windows
【ECS常见问题 二】镜像计费问题
复制镜像怎么收费的? 复制镜像过程包括以下操作: 从源地域将生成自定义镜像的快照复制到目标地域。在目标地域根据快照自动生成自定义镜像。
【ECS常见问题 二】镜像计费问题