监管端..

文章目录

  • 1. 登录流程
  • 2. 日志AOP

1. 登录流程

使用账号(手机号)、密码、验证码。登录就是获取token的,输入的账号密码用RSA加密(非对称)

  • 首先输入账号密码,在发送手机验证码时候先校验账号密码有没有输入,输入的话美团拉动,成功后发送验证码(本地生成6位随机数,之后调用发送短信服务,为了避免频繁多次点击获取验证码,本地synchronized LRUmap类对象,当map中没有key(手机号)时存入,并设置value为当前时间戳,当map中有key(手机号)说明用户已经发送过验证码,这时候拿到map中时间戳和现在时间戳相减,小于2秒提示不能频繁发送),并且最后将这个验证码存入redis,过期时间五分钟。
  • 后面当用户拿到短信验证码,输入,之后进入登录,采用的是password模式,到DB中查账号信息,密码信息,redis中校验验证码,最后将查到的有用的信息:账号、密码、名字、租户code等信息封装为accessToken,存入redis,最后推送登录日志:发布登录事件。

2. 日志AOP

  1. 定义注解 @Log
  2. 切面处理:LogAspect
    • 定义切点:@Pointcut,定位@Log注解的方法
    • @Before(“pointcut()”):创建日志对象,设置部分值:可以根据@Log注解定义的描述信息啊、@Log注解修饰的方法找到@operation啊等这些swagger注解的描述信息,通过@Log注解找到父类@tag描述的信息,根据请求获取浏览器啊、操作系统啊、等信息
    • @AfterReturning:根据方法执行后的结果,是正常返回还是异常?等返回信息补全日志对象,设置方法执行后的状态结果信息,最后发布日志事件(继承ApplicationEvent)。
    • 定义监听事件的bean:@EventListener({LogEvent.class})监听日志事件,@Async异步执行,bean中注入日志操作的feign,远程调用,执行日志的DB落库。

发布日志事件
在这里插入图片描述

监听日志事件:异步落库
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

私域如何高效管理多微信并实现聚合聊天?

在私域经营中,管理多个微信号是一项具有挑战性的任务。为了提高工作效率,辅助工具成为必不可少的一部分。而个微管理系统将为大家带来高效的多微信号管理体验,让大家能够更好地聚合聊天。 首先,个微管理系统提供了一个统一的界面…

【UML】-01-UML基本元素的介绍

1、UML的词汇表 (1)事物; (2)关系; (3)图。 事物是对模型中首要成分的抽象;关系把事物结合在一起;图聚集了相关的事物。 注:事物也称为元素 2…

vivo X100 Ultra自称销售额破5亿,真实销量成谜?

文/张诗雨 5月28日9点,vivo 正式启动了其旗舰新机vivo X100 Ultra的全渠道销售工作。这款新机,早在5月13日就已正式亮相,并推出了三种存储容量的版本,分别是12GB256GB、16GB512GB以及16GB1TB,而相应的售价也不低&…

常见排序算法之选择排序

目录 一、选择排序 1.1 什么是选择排序? 1.2 思路 1.2.1 思路一 1.2.2 优化思路 1.3 C语言源码 1.3.1 思路一 1.3.2 优化思路 二、堆排序 2.1 调整算法 2.1.2 向上调整算法 2.1.3 向下调整算法 2.2 建堆排序 一、选择排序 1.1 什么是选择排序&#xf…

人工智能与区块链技术:开启未来科技的双引擎

在当今科技飞速发展的时代,人工智能和区块链技术如同两颗璀璨的明星,照亮了人类通往未来的道路。 人工智能,以其强大的学习和分析能力,正悄然改变着我们的生活。它能够处理海量的数据,为我们提供精准的预测和个性化的…

设计模式:外观模式 导诊台。空指针异常

文章目录 UML类图目录结构思路Register.javaOutpatientService.javaPrice.javaPharmacy.javaFacade.java空指针异常 Test.java UML类图 目录结构 思路 照着写,然后getRegister()方法的具体实现就是:打印一句话,然后到…

从 0 手撸一个 pytorch

背景介绍 最近抽空看了下 Andrej Karpathy 的视频教程 building micrograd,教程的质量很高。教程不需要任何前置机器学习基础,只需要有高中水平的数学基础即可。整个教程从 0 到 1 手撸了一个类 pytorch 的机器学习库 micrograd,核心代码不到…

Vue状态管理深度剖析:Vuex vs Pinia —— 从原理到实践的全面对比

🔥 个人主页:空白诗 文章目录 👋 引言📌 Vuex 基础知识核心构成要素示例代码 📌 Pinia 基础知识核心构成要素示例代码 📌 Vuex与Pinia的区别📌 使用示例与对比📌 总结 👋…

探索Solana链上DApp开发:高性能区块链生态的新机遇

Solana 是一个新兴的区块链平台,致力于为 DApp(去中心化应用程序)开发者提供高性能、低成本的解决方案。Solana 的独特之处在于其创新性的共识机制和高吞吐量的网络,使得开发者可以构建高度可扩展的 DApp,并为用户提供…

云服务器如何使用局域网服务器的磁盘空间

说明 云服务器中的磁盘空间不足时,想要开通更多的磁盘空间,但奈何价格太贵,开不起 刚好局域网中有闲置的服务器空间可以拿来用,这里我们直接使用Samba服务来共享文件夹,使用frp来进行内网穿透; 1、磁盘挂…

OSPF优化——OSPF减少LSA更新量2

二、特殊区域——优化非骨干区域的LSA数量 不是骨干区域、不能存在虚链路 1、不能存在 ASBR 1)末梢区域 该区域将拒绝 4、5LSA的进人,同时由该区域连接骨干0区域的ABR 向该区域,发布一条3类的缺省路由; 该区域内每台路由器均需配置&#xf…

Unity 实现心电图波形播放(需波形图图片)

实现 在Hierarchy 面板从2D Object 中新建一个Sprite,将波形图图片的赋给Sprite。 修改Sprite 的Sprite Renderer 组件中Draw Mode 为Tiled, 修改Sprite Renderer 的Size 即可实现波形图播放。 在Hierarchy 面板从2D Object 中新建一个Sprite Mask 并赋以遮罩图片…

【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)

🔍目的 允许派生组件从与派生类型兼容的基本组件继承某些功能。 🔍解释 真实世界例子 对于正在策划赛事的综合格斗推广活动来说,确保在相同重量级的运动员之间组织比赛至关重要。这样可以防止体型明显不同的拳手之间的不匹配,例如…

生成模型 | 从 VAE 到 Diffusion Model (下)

生成模型 | 从 VAE 到 Diffusion Model (上)的链接请点击下方蓝色字体: 上部分主要介绍了,GAN, AE, VAE, VQ-VAE, DALL-E 生成模型 | 从 VAE 到 Diffusion Model (上) 文章目录 我们先来看一下生成模型现在的能力一&…

IT人的拖延——一放松就停不下来,耽误事?

拖延的表现 在我们的日常工作中,经常会面对这样一种情况:因为要做的Sprint ticket比较复杂或者长时间的集中注意力后,本来打算休息放松一下,刷刷剧,玩玩下游戏,但却一个不小心,没控制住时间&am…

IP 分片过程及偏移量计算

IP 报头中与分片相关的三个字段 1、 标识符( ldentifier ):16 bit 该字段与 Flags 和 Fragment Offest 字段联合使用, 对较大的上层数据包进行分段( fragment ) 操作。 路由器将一个包拆分后,所有拆分开的…

图解Java数组的内存分布

我们知道,访问数组元素要通过数组索引,如: arr[0]如果直接访问数组,比如: int[] arr1 {1}; System.out.println(arr1);会发生什么呢? 打印的是一串奇怪的字符串:[I16b98e56。 这个字符串是J…

强化训练:day11(游游的水果大礼包、 买卖股票的最好时机(二)、倒置字符串)

文章目录 前言1. 游游的水果大礼包1.1 题目描述1.2 解题思路1.3 代码实现 2. 买卖股票的最好时机(二)2.1 题目描述2.2 解题思路2.3 代码实现 3. 倒置字符串3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 游游的水果大礼包   2. 买卖股票的最好时机(二)   3. 倒置字符…

数据结构初阶 栈

一. 栈的基本介绍 1. 基本概念 栈是一种线性表 是一种特殊的数据结构 栈顶:进行数据插入和删除操作的一端 另一端叫做栈底 压栈:插入数据叫做压栈 压栈的数据在栈顶 出栈: 栈的删除操作叫做出栈 出栈操作也是在栈顶 栈遵循一个原则 叫做…