RuoYi-Vue-Plus 5.X登录前流程及解密

一:问题

1. 前端传给后端的是一个加密字符串,后端controller层login接口怎么就直接解密了呢?

2. 中间经过什么步骤到达的登录接口呢?

二:个人分析

首先考虑的是拦截器、过滤器、切面AOP;

1. 使用全文搜索没有使用到AOP切面技术(可以使用前置通知进行搜索)

2. 去找拦截器(Interceptor),发现web的调用时间统计拦截器中对登录验证码、请求方式、请求路径进行了一些处理

RuoYi-Vue-Plus 5.X登录前流程及解密_第1张图片

还是没有看见对登录进行处理,没有解密

3. 考虑过滤器,全局搜索过滤器,可以找到 CryptoFilter 类,CryptoFilter类实现了Filter接口,发现这个类中的foFilter方法中对登录的数据进行解密,没错就是这个过滤器对前端加密的字符串进行了处理

RuoYi-Vue-Plus 5.X登录前流程及解密_第2张图片

三:解密流程逐步解析

1. 找到application.yml文件中有对数据权限以及接口权限加解密的配置

RuoYi-Vue-Plus 5.X登录前流程及解密_第3张图片

2. 根据接口权限标识去找对应的代码,操作:按住 Ctrl 鼠标点击headerFlag进去,会进入ApiDecryptProperties配置属性类;按住 Ctrl 继续点击类名ApiDecryptProperties,会出现有两个类引用到了配置属性类

RuoYi-Vue-Plus 5.X登录前流程及解密_第4张图片

3. 注意看我图中的流程,过滤器直接交给了Spring进行管理处理接口数据的加解密,总的流程就是前端——>Filter过滤器——>Interceptor拦截器——>Controller层

4. 后续的login流程大家通过Debug一步一步走就是了

你可能感兴趣的:(java,spring,boot,intellij-idea,servlet)