SpringBoot3+Vue3:
登录模块:
### 登录功能:

注册功能:

记住密码:

找回密码:
确认账户:
说明:第一次图片验证码用于人机验证

安全认证:


重置密码:

成功找回:

个人中心:
个人信息:

修改密码:

信息模块:
数据统计:

系统公告:


系统日志:

文章模块:
文章分类:

文章信息:

查看文章:

编辑文章:

文章前台:


阅读文章:

文章目录:

音乐模块:
音乐管理:


前台界面:
说明:基础播放按键+旋转唱片+歌词跳动

播放列表:

图片模块:
展示页面:

轮播图:

用户模块:
用户管理:

发送邮件:

导入导出:
说明:导入 点击导入选择文件就可以导入信息 导出 点击导出就能生成Excel文件


+SpringSecurity:
说明:本项目为个人SpringSecurity脚手架-权限管理系统
记住密码:本次项目中使用了cookie代替了session存储密码,并使用RSA非对称加密算法做了存储加密
账号登录:会使用pinia依次保存token,动态路由(由权限管理12级目录分配,为菜单管理的目录,菜单),动态权限(由权限管理3级目录分配,为菜单管理的按钮的权限标识),和个人信息;
安全退出:会清除登录时存储的四种信息,并清除Redis中的会话链token
会话个数控制:设置单一账号登录个数,登录设备数量超过预设数量,最早的设备会退出登录,通过Redis会话链实现
会话频率控制:使用Redis实现,目前设置同一用户每0.3秒才可请求一次,否则显示请求频率过快,不过可以使用Sentinel实现不再讨论
标签:通过路由守卫监听浏览器路由变化添加标签,首页被锁定添加(pinia实现)不能删除(路由守卫过滤)
数据库设计:数据库使用RBAC设计,用户-角色-权限分离
基础配置:
异常处理:设置全局异常处理器和自定义异常处理器,权限不足异常-由于自定义异常无法监听到Security中过滤器,所以要单独设置
JWT过滤器:白名单放行,检测token存在,token过期,token无效
JWT工具包:token生成 信息-用户名,id;加密-签名;过期判断-签发时间,过期时间;唯一性-uuid(保证每次签发的token都不同)
token解析 token存在判断(此时为静默处理) 验签 判断过期
跨域配置:CorsConfig自定义跨域配置
Redis序列化器:RedisConfig
WebConfig:图片存储路径映射
缓存管理:SpringCache
连接池:druid
security配置:
WebSecurityConfig额外:
实现跨域处理(这个是Security的跨域配置) 开启授权保护 关闭csrf攻击防御 限流过滤器(由token代替)JWT过滤器 登录配置
以下均通过WebSecurityConfig加入Security过滤链
密码加密:使用BCryptPasswordEncoder
用户信息管理:判断密码正确性,判断是否为封禁用户,封装用户权限
登录成功处理器:生成并返回token,进行用户Redis中token链的判断
登录失败处理器:返回失败信息
注销处理器:清除Redis中的token
以下已经由token代替:
拒绝访问处理器:由于权限不足产生,被全局异常处理器代替
认证异常处理器:未检测出认证信息,由于使用token代替认证信息,但token为无状态信息,此阶段无法被识别,故舍弃
会话处理器:可以控制会话个数和会话频率但token为无状态所以不会产生会话
配置:
环境:dev开发环境配置;preprod预生产环境配置
dockerfile:配置了dockerfile,并配置了一键部署
后台设计:
说明:动态路由+动态菜单+动态标签页(固定首页)+面包屑导航+导航收缩按键+头像下拉栏+安全退出


权限模块:
用户管理:
管理界面:

分配角色:

权限管理:


菜单管理:


个人中心:
基本资料:

修改密码:
