pig java api_pig CheckToken过程讲解
## CheckToken的目的
当用户携带token 请求资源服务器的资源时, **OAuth2AuthenticationProcessingFilter** 拦截token,进行token 和userdetails 过程,把无状态的token 转化成用户信息。
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152554.png)
## 详解
1. OAuth2AuthenticationManager.authenticate(),filter执行判断的入口
2.
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152607.png)
2. 当用户携带token 去请求微服务模块,被资源服务器拦截调用RemoteTokenServices.loadAuthentication ,执行所谓的check-token过程。
源码如下
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152620.png)
3. CheckToken 处理逻辑很简单,就是调用redisTokenStore 查询token的合法性,及其返回用户的部分信息 (username )
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152628.png)
4. 继续看 返回给 RemoteTokenServices.loadAuthentication 最后一句
tokenConverter.extractAuthentication 解析组装服务端返回的信息
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152642.png)
最重要的 userTokenConverter.extractAuthentication(map);
5. 最重要的一步,是否判断是否有userDetailsService实现,如果有 的话去查根据 返回的
username 查询一次全部的用户信息,没有实现直接返回username,这也是很多时候问的为什么只能查询到username 也就是 EnablePigxResourceServer.details true 和false 的区别。
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152656.png)
6. 那根据的你问题,继续看 UerDetailsServiceImpl.loadUserByUsername 根据用户名去换取用户全部信息。
![](https://gitee.com/pig4cloud/oss/raw/master/2020-9/20200901152705.png)
pig java api_pig CheckToken过程讲解相关推荐
- 利用计算机解决问题过程中找出已知,用计算机解决问题的过程讲解.ppt
用计算机解决问题的过程讲解.ppt 第一章 揭开计算机解决问题的神秘面纱,第一节 计算机解决问题的过程,什么是程序,计算机的任何动作都是在执行人给它的指令.人们针对某一需要而为计算机编制的指令序列称为 ...
- “万字“ Java I/O流讲解
Java I/O流讲解 每博一文案 谁让你读了这么多书,又知道了双水村以外还有一个大世界,如果从小你就在这个天地里,日出而作,日落而息. 那你现在就会和众乡亲抱同一理想:经过几年的辛劳,像大哥一样娶个 ...
- java 程序运行过程 简介
这里的Java程序运行过程,是指我们编译好代码之后,在命令行开始执行java xxx命令,到java程序开始执行起来的这一过程,我们称其为运行时. 第一步,操作系统解析我们输入的java xxx命令, ...
- java创建对象的过程_Java创建对象的过程
Java创建对象的过程 Java是一门面向对象的编程语言,在Java程序运行过程中每时每刻都有对象被创建出来.在语言层面上,创建对象通常仅仅是一个new关键字而已,而在虚拟机中,对象的创建又是怎样一个 ...
- php如何通过变量销毁unset的过程讲解
2019独角兽企业重金招聘Python工程师标准>>> php如何通过变量销毁unset的过程讲解 unset -- 释放给定的变量 描述 void unset ( mixed va ...
- 53.垃圾回收算法的实现原理、启动Java垃圾回收、Java垃圾回收过程、垃圾回收中实例的终结、对象什么时候符合垃圾回收的条件、GC Scope 示例程序、GC OutOfMemoryError的示例
53.垃圾回收算法的实现原理 53.1.目录 53.2.启动Java垃圾回收 53.3.Java垃圾回收过程 53.4.垃圾回收中实例的终结 53.5.对象什么时候符合垃圾回收的条件? 53.5.1. ...
- 【Java】类加载过程
JVM把class文件加载到内存,并对数据进行校验.解析和初始化,最终形成JVM可以直接使用的Java类型的过程. 类加载的过程主要分为三个部分: 加载 链接 初始化 而链接又可以细分为三个小部分: ...
- Java经典面试套路讲解:Java Killer系列
Java经典面试套路讲解:Java Killer系列 java编程语言是目前应用较为广泛的一门计算机编程语言,目前java市场需求量有增无减.java作为目前IT软件开发行业的重要技术之一,人才市场出 ...
- 下列叙述中正确的是 java语言_1. 下列关于JAVA语言特点的叙述中,错误的是[ ] A、Java是面向过程的编程语言...
1. 下列关于JAVA语言特点的叙述中,错误的是[ ]A.Java是面向过程的编程语言 B.Java支持分布式计算C.Java是跨平台的编程语言 &... 1. 下列关于JAVA语言 ...
- Java高效输入输出流讲解
Java高效输入输出流讲解 Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputS ...
最新文章
- IAR生产HEX文件
- hdu1196 Lowest Bit
- JavaScript --- 跨浏览器的事件处理程序
- 检查服务器端口占用情况命令
- Scrum指南这么改,我看要完蛋!
- 冒烟的意思_冒烟测试是什么?
- Intellij IDEA基本配置
- 小葵花妈妈课堂开课了:《ArrayList源码浅析》
- java 多余的空格_Java去除字符串多余空格以及首尾空格
- 高清和网络电视是数字电视的希望
- 面试必备:常用的设计模式总结
- 基于STM32F407的ADC解析-ADC1多通道扫描模式电压采集实验(启用DMA传输数据)
- RISCV toolchain编译工具链搭建
- 西门子S7-1200PLC堆栈程序 在使用西门子1200PLC时候发现,系统没有自带的堆栈功能块,不能实现数据的先进先出后进后出功能
- 自动化运维 -- 02 Ansible
- 语音处理/语音识别基础(三)- 声音的特征和声音的能量
- 在人一生的成长过程中,什么才是最重要的因素?
- 什么是css sprites?
- 让战略落地到运营的PMO实施经验分享——亚马逊全球新兴市场PMO负责人宋晓雪
- VMware安装Linux时显示没有网络解决方法(100%解决)
热门文章
- 【逻辑题】猜猜她的生日
- 实现AlphaGo(一):围棋的基本规则和代码设计思路
- 天正菜单栏不见了怎么显示出来_天正CAD中菜单栏不见了如何调出来?
- 为开发者而生 | 2021 SuperMap开发者大会议程全公布
- 拇指玩」制作的「谷歌安装器」app
- 回顾+纪念:离开帝都的第一年
- python中的scaler_使用时值错误scaler.inverse_变换在Python中
- 三星S5660刷机及Root
- Enterprise Architect 类关系对应解析
- 创新专题一:省份层面(创新效率、创新能力、投入产出、高质量发展等)