目录
浅析ruoyi-cloud的登录认证功能,在开始分析之前,需要一系列繁琐的配置过程来启动ruoyi-cloud
skywalking
首先,skywalking是我们等会儿要用到的妙妙工具,先把它下载下来,链接如下:
skywalking下载连不上挂梯子https://skywalking.apache.org/downloads/推荐下载9.0.0版本,高版本可能出现无法启动的问题,原因不明,同时,请注意skywalking在9.0版本以上apm包和agent包是分离的,需要分别下载
下吧,下出来应该是两个压缩包。
apm文件夹目录内容如下:
agent文件夹目录内容如下:
此时将整个 agent文件夹放到apm目录下bin的同级,将文件夹名改为agent,如图
文件内容修改
接下来需要修改一下文件,首先skywalking的默认启动端口是8080,这会占用我们ruoyi-cloud的服务端口,把它改了,去skywalking的webapp目录下yml文件,不同版本的skywalking似乎文件名不同,但总之就是这个
改了就行,记得保存,skywalking的配置暂时这样,接下来启动,进入bin文件夹
对,把这个bat文件启动了就行,如果正常的话,会出现两个启动窗口。
先告一段落,把ruoyi-cloud处理了
ruoyi-cloud启动配置
从gitee上把东西扒下来,链接如下:
RuoYi-Cloud: 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本 (gitee.com)
nacos配置
启动nacos,具体操作步骤不多说:
配置nacos的持久化,也就是数据库的配置,这里也不多说,进入nacos配置页面修改ruoyi-cloud的启动配置
编辑修改以上配置文件(设置数据库和Redis账号密码)
vm配置
添加配置,另外的服务类似
ok,这样就可以启动了,把ruoyi-cloud的服务启动,记得先启动redis
方法链路追踪
触发一下ruoyi的登录,看看触发的三个方法
能清楚的看到他们的链接/网址,这东西可以用来判断这三个接口的模块,去skywalking页面开始翻代码
login
点击服务---Trace---输入服务名---搜索---找到我们要找的login请求---切换为树状图表示
可以看到这东西,调了auth模块的/user/info/{username}和/logininfor以后,转到了system模块的额数据库操作一类的东西
那总之先看auth的login方法
就是它,再往下
然后,它调用的东西从auth转到了system模块,那往system里面看看的话
到这里,验证账号与密码,还获取了权限,然后就是
嗯哼,数据库表相关的东西和skywalking给出的完全一致。
现在看看另一边的/logininfor,这个方法依然是auth中的,还是要在auth里面找
看起来是和日志相关的东西
数据库表相关,这就是skywalking!
getInfo
system服务,找吧
精彩
它本身也是用来查询用户的权限和信息的
getRouters
还是来源system的一个方法,找呗
是获取路由的一个方法
最后也是和数据库交互,反正都离不开数据库