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

监听日志事件:异步落库

相关文章:
监管端..
文章目录 1. 登录流程2. 日志AOP 1. 登录流程 使用账号(手机号)、密码、验证码。登录就是获取token的,输入的账号密码用RSA加密(非对称) 首先输入账号密码,在发送手机验证码时候先校验账号密码有没有输入…...
点击登录按钮先检测输入框的规则检测(vue组合式)
<template><el-form :model"user" :rules"rules" ref"loginForm" label-width"auto" style"max-width: 600px"><el-form-item label"用户名" prop"name"><el-input v-model"…...
网络工程师---第四十二天
1、基于子网的vlan划分配置步骤是什么? 2、基于端口的vlan划分配置步骤是什么? 3、基于MAC地址的vlan划分配置步骤是什么? 4、请简述无线局域网的组网方式有哪几种,区别是什么? 5、请简述堆叠、级联和集群作用和区别是…...
leetcode 1241每个帖子的评论数(postgresql)
需求 编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。 Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。…...
前端最新面试题(ES6模块篇)
目录 1 ES5、ES6和ES2015有什么区别? 2 babel是什么,有什么作用? 3 let有什么用,有了var为什么还要用let? 4 举一些ES6对String字符串类型做的常用升级优化? 5 举一些ES6对Array数组类型做的常用升级优化 6 举一些ES6对Number数字类型做的常用升级优化 7 举一些ES…...
STM32H750外设之ADC通道选择
目录 概述 1 通道选择功能介绍 2 通道选择( SQRx、 JSQRx) 2.1 通道复用 2.1.1 通道介绍 2.1.2 通道框图 2.2 转换分组 2.3 内部专用通道 3 通道预选寄存器 (ADCx_PCSEL) 3.1 功能介绍 3.2 预选通道寄存器 概述 本位主要介绍STM32H750外设之…...
【Unity2D 2022:Cinemachine】相机跟随与地图边界
一、导入Cinemachine工具包 1. 点击Window-Package Manager,进入包管理界面 2. 点击All,找到Cinemachine工具包,点击Install 二、相机跟随角色 1. 选中Main Camera,点击Component-Cinemachine-CinemachineBrain,新建…...
ssh远程连接的相关配置
连接同一个局域网下: 正好这里来理解一下计算机网络配置中的ip地址配置细节, inet 172.20.10.13: 这是主机的IP地址,用于在网络中唯一标识一台设备。在这个例子中,IP地址是172.20.10.13。 netmask 255.255.255.240: 这是子网掩码…...
在leafet上画圆、多边形、线、矩形
在leaflet上画圆、多边形、线、矩形 <template><div id"map" class"map"></div> </template><script> import L from leaflet; export default {data () {return {myGroup: ,};},mounted () {this.initMaps()this.huizhiro…...
SpringBoot中如何在服务器进行校验?
数据校验就是数据的合法性检查,在服务器端也可以对数据进行校验,一般使用JSR303 校验 JSR303是Java为Bean数据合法性校验提供的标准框架,是一种声明式校验 JSR303通过在Bean属性上标注类似于NotNull、Max等注解来指定校验规则,并…...
element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入
解决方案: 我是form表单嵌套表格,里面的el-input输入框,输入第一个值的时候会突然失去焦点,需要再次点击输入框才能正常输入,原因是table的key值,需要改成正常的index即可,如果你是循环的&…...
【绝地求生game】
编写一个完整的《绝地求生》这样的游戏程序代码是一个庞大的工程,涉及到成千上万行的代码和复杂的多模块协作。在这里,我可以提供一个非常简化的示例,用于演示游戏编程中可能用到的基本概念,比如玩家移动、基本物理和简单的游戏逻…...
Mac上Steam安装的游戏已经卸载,但游戏的快捷方式图标仍存在的解决方式
打开终端,输入以下内容,回车。 open ~/Applications 在弹出的窗口中,会列出对应的快捷方式,按需删除即可。 实际上打开的是 /Users/改为你的用户名/Applications 文件夹下的内容。因此也可以通过打开访达(Finder&am…...
PTA 判断两个矩阵相等
Peter得到两个n行m列矩阵,她想知道两个矩阵是否相等,请你用“Yes”,“No”回答她(两个矩阵相等指的是两个矩阵对应元素都相等)。 输入格式: 第一行输入整数n和m,表示两个矩阵的行与列,用空格隔…...
《征服数据结构》双向链表
摘要: 1,双链表的介绍 2,双链表的用途 3,双链表的节点插入和删除 1,双链表的介绍 前面我们讲过单链表,单链表的特点就是只能往后访问不能往前访问。单链表一般在面试中用的比较多,比如删除倒数第…...
我用 Midjourney 的这种风格治愈了强迫症
在 Midjourney 能够实现的各种布局之中,有两种风格因其简洁、有序而独居魅力,它们就是平铺 (Flat Lay) 和 Knolling (Knolling 就是 Knolling, 无法翻译🤣)。要在现实生活中实现这样的美学效果并不容易,你需要精心挑选各种小物件&…...
三维大场景管理-3Dtiles规范
简介 : 这篇文章都是三年前写的了,一直在笔记库存中,今天把他放出来。主要是讲Cesium 的3Dtiles 格式,当然3Dtiles主要是解决场景管理大场景的LOD实现的问题,不管是剔除渲染性能优化之Culling 剔除或者 LOD 、3Dtiles…...
Flutter 中的 FractionalTranslation 小部件:全面指南
Flutter 中的 FractionalTranslation 小部件:全面指南 在 Flutter 的丰富布局库中,FractionalTranslation 是一个允许你将子组件沿着一个轴或两个轴进行部分平移的动画小部件。这种类型的平移通常用于创建滑动效果,如卡片的滑动删除或滑动展…...
Thrift快速入门开发demo
Thrift快速入门开发demo 一、认识Thrift thrift是什么?一个RPC 代码生成框架,使用它的IDL(Interface Defination Language,接口定义语言)定义你想要实现的接口,然后它就会生成对应语言的远程调用框架代码,用户只需要实现接口逻辑,不用关心具体的细节。 tutorial:htt…...
关于C++智能指针复习总结
RAII(Resource Acquisition Is Initialization): 资源获得即初始化 利用对象生命周期来控制程序的资源(将资源交给对象处理) 智能指针利用了该思想 将资源交给一个对象, 初始化资源(可以是指针或者等等资源), 释放交给析构函数 因为析构函数无论是什么场景, 对象销毁时一定会…...
视频拖动进度条时如果落在GOP内,是怎么定位的?
视频拖动进度条时的 GOP 定位行为说明 0. 名词解释:Seek 是什么? Seek(寻址/定位)来自英文 “seek”(寻找、定位),在视频/音频领域特指将播放位置跳转到指定时间点的操作。 用户拖动进度条、点击…...
Ubuntu 18.04环境下小米K30U内核编译实战与排错指南
1. 项目概述与核心价值最近在折腾一台小米K30U,想给它刷个自定义内核,体验一下超频或者优化调度。但网上的教程要么是针对新机型,要么就是环境配置说得不清不楚,特别是对于Ubuntu 18.04这个已经有点“年迈”但依然稳定的系统版本&…...
ChatGPT开源实现全景图:从RLHF原理到主流项目实战指南
1. 项目概述:一份给开发者的ChatGPT开源实现全景图最近几个月,ChatGPT的火爆程度无需多言。作为一名长期关注自然语言处理和开源生态的技术从业者,我观察到社区里涌现出了一大批旨在复现或探索ChatGPT技术路径的开源项目。这背后反映的&#…...
LLM成长笔记(六):RAG(检索增强生成)
RAG(检索增强生成)全栈学习博客(通俗原理 详细注释 AI应用强化版) RAG 是让大模型“能回答它没学过的新知识”的核心架构。这篇博客从实际问题出发,用生活化类比建立直觉,通过术语详解深入概念本质&#…...
核心代码编程-多模态版本的最优调度-200分
在大语言模型推理服务中,有多个不同大小的模型版本可供选择。每个模型版本有不同的准确率和推理延迟。给定查询次数N和总时间预算T,为每个查询选择一个模型版本,使得在不超过时间预算的前提下,总准确率最大。输入 ﹣查询…...
大中小型企业数据配置年度成本估算分析
引言 在数字化转型浪潮下,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,合理规划数据存储、处理与分析的成本,对于优化IT预算、提升投资回报率至关重要。本文旨在为不同规模的企业提供一个清晰、可操作的年度数据配置成本…...
C++学习笔记23:const 成员函数
目录 一、为什么需要 const 成员函数? 二、const 成员函数的写法 三、const 修饰的到底是什么? 四、const 成员函数不能修改成员变量 五、const 对象和普通对象的调用规则 1. const 对象只能调用 const 成员函数 2. 普通对象可以调用 const 成员函…...
告别普通回归!R 语言混合效应 (多水平 / 嵌套) 模型 + 贝叶斯实现,一篇学会
在科研数据分析里,普通回归已经不够用了。你是不是经常遇到:数据有分层、嵌套、多水平结构,普通回归不准?计数数据、0-1 数据、过度离散、零膨胀,不会选模型?时空自相关、系统发育数据,不知道怎…...
【性能评估】信标辅助双跳认知无线电无线中继选择方案的性能评估研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Sora 2提示词失效真相大起底(92%用户踩中的3类语义断层陷阱)
更多请点击: https://kaifayun.com 第一章:Sora 2提示词失效的底层归因与认知重构 Sora 2提示词失效并非表层的语法错误或格式偏差,而是源于其多模态对齐机制中语义解码器与时空生成器之间的结构性错配。当用户输入“雨夜东京涩谷十字路口&a…...
