源码分析
# 项目结构
ruoyi
├── ruoyi-common // 工具类
│ └── annotation // 自定义注解
│ └── config // 全局配置
│ └── constant // 通用常量
│ └── core // 核心控制
│ └── enums // 通用枚举
│ └── exception // 通用异常
│ └── utils // 通用类处理
│ └── xss // XSS过滤处理
├── ruoyi-framework // 框架核心
│ └── aspectj // 注解实现
│ └── config // 系统配置
│ └── datasource // 数据权限
│ └── manager // 异步处理
│ └── shiro // 权限控制
│ └── util // 通用工具
│ └── web // 前端控制
├── ruoyi-generator // 代码生成(可移除)
├── ruoyi-quartz // 定时任务(可移除)
├── ruoyi-system // 系统代码
├── ruoyi-admin // 后台服务
├── ruoyi-xxxxxx // 其他模块
# 配置文件
- 通用配置
application.yml
ruoyi-admin/src/main/resources/application.yml
- 数据源配置
application-druid.yml
ruoyi-admin/src/main/resources/application-druid.yml
- 代码生成配置
generator.yml
ruoyi-generator/src/main/resources/generator.yml
# 登入登出
# 前端登录框登录
定位到SysLoginController中的login方法
/**
* 登录方法
*
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody loginBody)
{
}
SysLoginController的父类BaseController
BaseController是一个web层的通用数据处理类
/**
* web层通用数据处理
*
* @author ruoyi
*/
public class BaseController
{
}
Ajax消息类AjaxResult
/**
* 操作消息提醒
*
* @author ruoyi
*/
public class AjaxResult extends HashMap<String, Object>
{}
# 前端退出当前用户
发送/logout请求
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
// 添加Logout filter
httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
定位到LogoutSuccessHandlerImpl退出过滤器
ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
/**
* 自定义退出处理类 返回成功
*
* @author ruoyi
*/
@Configuration
public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
{}
定位到JwtAuthenticationTokenFilter token认证过滤器
// 添加JWT filter
httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
/**
* token过滤器 验证token有效性
*
* @author ruoyi
*/
@Component
public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
{}
上次更新: 2023/11/10, 18:35:34