首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Security 实战干货:如何获取当前用户信息

在某些场景中我们需要获取当前的用户是谁?如果你使用了Spring Secrity作为安全框架你可以通过以下手段获取当前用户。...SecurityContext 无论是有状态的Session模式还是流行的JWT模式你都可以通过SecurityContext来获取当前的用户: Authentication authentication...Principal java.security.Principal对象也可以获取当前的用户信息,在Spring Security中该对象表现为Authentication对象,如果我们在Spring MVC...UserDetails, 我们可以通过Spring Security 4.0提供的注解@AuthenticationPrincipal来获取当前用户的自定义UserDetails对象。...总结 今天总结了如何在Spring Security获取当前用户的各种方法,它们的各自场景都略有不同,你可以根据这些罗列选择最适合你的应用场景。

5.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Security - 02 从 SecurityContextHolder 中获取用户信息

@toc 环境 操作系统: Windows 10 x64 集成开发环境: Spring Tool Suite 4 Version: 4.12.1.RELEASE Build Id: 202110260750...浏览器(客户端): Google Chrome 版本 97.0.4692.71(正式版本) (64 位) 项目结构 参考:Spring Security - 01 新建项目 [在这里插入图片描述]...新建 HelloController 控制器类,我们可以通过 SecurityContextHolder 获取用户信息(第 17 ~ 19 行): package com.mk.controller;...(); return principal; } } 测试 启动项目,打开浏览器,访问 http://localhost:8080/principal,由于我们没有通过身份认证,Spring...Security 会先要求我们登录,登录成功之后就可以看到服务器返回用户信息: [在这里插入图片描述] 参考 Spring Security - 01 新建项目 Spring Security /

1.9K20

uni-app实战之路-获取用户地址和基本信息

写在前面 开发小程序避免不了的是获取用户信息,地址等,今天就简单的记录一下我实现的过程,因为我多个地方要用到,所以我这里直接写到vuex里面,你们看情况,不需要用的可以直接写到你们认为合适的地方!...流程 拿到授权->获取经纬度->获取地图的授权->根据经纬度进行逆地址解析 下面我们按照流程进行一步一步的来 authorize authorize文档 这里可以看到文档里面写的还是比较明白的,提前向用户发起授权请求...调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。...我们使用这个进行获取用户的经纬度,这里文档有一个比较奇怪的地方,这里有一个参数是geocode,上面的描述是这样的,说默认false,是否解析地址信息,我这里的理解是解析地址应该是直接返回给你具体的详细地址...获取用户基本信息 我们在开发的时候一般是需要获取用户的头像和昵称等信息的,这里简单的说一下,毕竟文档写的也比较简单了! 获取用户基本信息 这里直接看源码吧!

3.4K30

项目之通过Spring Security获取当前登录的用户信息(6)

通过Spring Security获取当前登录的用户信息用户成功登录后,需要获取用户信息才可以执行后续的操作,例如获取用户的权限、获取用户的问题列表、获取用户的个人信息等等。...Spring Security提供了简便的获取当前登录用户信息的做法,在控制器的处理请求的方法中,添加Authentication类型的参数,或添加Principal类型的参数,均可获得当前登录用户信息...以上做法输出的内容比较多,还可以使用以下做法来获取用户信息: // http://localhost:8080/test/user/current/details @GetMapping("/user/...扩展UserDetails 通过以上注入@AuthenticationPricipal UserDetails userDetails后可以获取用户信息,但是,对象中封装的信息可能不足以满足编程需求,...()); userInfo.setGender(user.getGender()); userInfo.setType(user.getType()); return userInfo; 以后,当需要获取当前登录的用户信息

1.7K10

谷歌严打APP滥用权限获取用户信息,而国内安卓自有妙招

信息时代,数据安全的重要性不言而喻,无数攻击者大费周章无非就是为了获取他们想要的数据。而在安卓手机系统上,通过App随意获取权限收集数据几乎已成常态,也就导致安卓手机权限泛滥而被人诟病。...由于Android的开源性,安卓用户仍然可以从第三方获取APP下载,因此谷歌除了加强Google Play管理规范的同时,在用户通过Chrome在第三方网站下载APP的时候,也将出现警告信息来提醒用户。...而对于国内用户而言,Google Play的存在感几乎为零,国内安卓手机基本上都是从Google Play以外的第三方应用商店获取APP下载。...其实早在谷歌收紧安卓权限控制之前,国内MIUI、Flyme这些第三方深度定制系统就已经从系统层加强了安卓软件对于权限获取的控制,除了根据软件属性智能分配权限之外,在软件第一次请求获取通讯录、IMEI等用户信息时...手机、PC、互联网等信息安全事故频发,谷歌也进一步了加强软件层管理规范,安卓APP滥用权限、随意获取用户信息势必将逐渐得到根治。

2.1K60

奇怪,Spring Security 登录成功后总是获取不到登录用户信息

具体的操作办法,大家可以看看松哥之前发布的教程:Spring Security 如何动态更新已登录用户信息?。 正常情况下,我们通过如上两种方式的任意一种就可以获取到已经登录的用户信息。...2.顺藤摸瓜 要弄明白这个问题,我们就得明白 Spring Security 中的用户信息到底是在哪里存的? 前面说了两种数据获取方式,但是这两种数据获取方式,获取到的数据又是从哪里来的?...,后面的请求来了,在线程 B 中处理,那此时就无法获取用户的登录信息。...但实际上,正常情况下,我们每次都能够获取到登录用户信息,这又是怎么回事呢?...,在当前请求中,Spring Security 的后续操作,我们都可以直接从 SecurityContextHolder 中获取用户信息了。

7.8K61

还原Facebook数据泄漏事件始末,用户信息到底是如何被第三方获取的?

▌ 3、获取 Facebook 用户信息指南 事实表明,Facebook 的 5000 万用户数据的确被泄漏,营长今天就扒一扒:如何获取 Facebook 用户信息。...获取数据(用户信息,评论,照片),发布到用户时间表和页面,并使用你的应用进行测试,最终获取你已测试的操作代码示例。...如果你还没有在 Facebook 上填写有关个人信息,那么该区域在“节点”面板中将呈现灰色,且在用户响应中不会返回有关个人信息的行。 想要查看可用于节点的字段列表吗?...点击 Get Token ,获取用户访问令牌并选择 publish_actions 权限。现在,使用 Get Token 下拉菜单选择你希望将访问令牌应用于的页面。...如果有些数据涉及另一个用户信息,那么他们的隐私设置将优先于访问令牌。

3.4K50

大量APP使用超声波追踪技术获取用户信息,隐私安全或将难以保障

研究人员在上周的IEEE欧洲议会上表示,他们在近期的一项研究中发现了234种安卓应用会向用户发出“允许使用麦克风”的请求,以此通过超声波信号追踪用户信息。...由此,广告商可以通过此项技术跨设备追踪用户信息,创建用户的个性化档案,通过分析设备收集的数据了解用户的兴趣所在,从而为每位用户推荐他们感兴趣的广告。...开发者可以通过SilverPush跨多个设备追踪用户信息,而 Lisnr 和Shopkick 则用于用户进行位置追踪。...为了取消这些不需要的APP请求,一些Android手机厂商,例如一加为用户提供了一种叫做“隐私指南”(Privacy Guard)的功能,用户可以通过这一功能禁止一些与APP基本功能无关的请求。...Android 7和iOS 10用户同样可以通过设置实现这一操作。

1.2K80

Spring Security 中,我就想从子线程获取用户登录信息,怎么办?

大家知道在 Spring Security 中想要获取登录用户信息,不能在子线程中获取,只能在当前线程中获取,其中一个重要的原因就是 SecurityContextHolder 默认将用户信息保存在 ThreadLocal...String MODE_GLOBAL = "MODE_GLOBAL"; ... ... } 第二种存储策略 MODE_INHERITABLETHREADLOCAL 就支持在子线程中获取当前登录用户信息...这个问题搞懂了,就理解了为什么在 Spring Security 中,只要我们稍加配置,就可以在子线程中获取到当前登录用户信息。...System.out.println(threadName + ":authorities = " + authorities); } }).start(); } 默认情况下,子线程中方法是无法获取到登录用户信息的...修改完成后,再次启动项目,就可以在子线程中获取到登录用户数据了,至于原理,就是前面所讲的。

4.4K30

旧的Spring Security OAuth已停止维护,全面拥抱新解决方案Spring SAS

密码模式和APP模式密码模式在Oauth2.1协议中被放弃,Spring Authorization Server并没有对该模式提供实现,该实现是基于Spring Authorization Server...、OpenID Connect模式,最终获取到一段用户信息(比如用户名、头像地址、邮箱),但是其实并没有办法拿着这段信息在当前系统中访问受限资源,以前都是手搓token或者其它手段来得到受限访问的权限,...jeecg针对以上场景,基于Spring Authorization Server扩展了social模式,用于处理获取三方用户信息后,再获取当前系统的访问凭证。...token 可获取用户信息的凭证thirdType 三方来源 响应内容:参数名称 参数含义...获取登录用户信息LoginUser sysUser = SecureUtil.currentUser();

18310

Spring Security技术栈开发企业级认证与授权(十四)使用Spring Social集成QQ登录验证方式

一、开发获取用户QQ信息的接口 在前一篇文章中介绍到,Spring Social封装了OAuth协议的标准步骤,我们只需要配置第三方应用的认证服务器地址即可,就可以获取到访问令牌Access Token...&oauth_consumer_key=APP_ID&openid=OPENID 返回内容 返回内容是JSON格式的字符串,具体字段和说明如下表所示 获取用户信息JSON返回体说明: 参数说明 描述...先来写一个获取用户信息的接口QQ,代码如下: package com.lemon.security.core.social.qq.api; /** * 获取QQ用户信息的接口 * * @author...二、开发QQServiceProvider 开发完获取用户的QQ信息的接口后,那么接着开发QQServiceProvider,OAuth2Operations是不需要我们开发的,Spring Social...(显示名称),ProfileUrl(主页地址),ImageUrl(头像地址)等基本信息,这些信息Spring Social所规定的用户信息(固定字段),我们现在要做的就是将拿到的用户信息转换成OAuth2Connection

1.3K20

Spring Security源码分析三:Spring Social实现QQ社交登录

请求第三方应用 第三方应用将用户请求导向服务提供商 用户同意授权 服务提供商返回code client根据code去服务提供商换取令牌 返回令牌 获取用户信息 在标准的OAuth2协议中,1-6步都是固定...,只有最后一步,不通的服务提供商返回的用户信息是不同的。...使用Spring Social 准备工作 在申请个人开发者,获得appId和appKey或者使用 贡献出来的 配置本地host 添加 数据库执行以下sql 项目端口设置为端口 引入Spring...定义返回用户信息接口 public interface QQ { /** * 获取用户信息 * @return */ QQUserInfo getUserInfo..., SecurityConstants.DEFAULT_SOCIAL_QQ_APP_ID, SecurityConstants.DEFAULT_SOCIAL_QQ_APP_SECRET); }

84120
领券