修复信息编号登录、心理网站学员页面显示、字段更新
This commit is contained in:
parent
3bf1b088b4
commit
7acbcaca1d
2195
sql/ry_news.sql
2195
sql/ry_news.sql
File diff suppressed because one or more lines are too long
|
|
@ -1,64 +0,0 @@
|
||||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">动动脑新闻系统 v1.0.0</h1>
|
|
||||||
<h4 align="center">基于SpringBoot+Vue前后端分离的新闻管理系统</h4>
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://github.com/ddnai/ry-xinli"><img src="https://img.shields.io/badge/DDNAI-v1.0.0-brightgreen.svg"></a>
|
|
||||||
<a href="https://github.com/ddnai/ry-xinli/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
## 平台简介
|
|
||||||
|
|
||||||
动动脑新闻系统是一套基于开源框架定制开发的新闻内容管理平台。
|
|
||||||
|
|
||||||
* 前端采用Vue、Element UI
|
|
||||||
* 后端采用Spring Boot、Spring Security、Redis & Jwt
|
|
||||||
* 权限认证使用Jwt,支持多终端认证系统
|
|
||||||
* 支持加载动态权限菜单,多方式轻松权限控制
|
|
||||||
* 高效率开发,使用代码生成器可以一键生成前后端代码
|
|
||||||
* 完善的新闻内容管理功能,支持多级分类和标签系统
|
|
||||||
|
|
||||||
## 内置功能
|
|
||||||
|
|
||||||
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
|
||||||
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
|
|
||||||
3. 岗位管理:配置系统用户所属担任职务。
|
|
||||||
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
|
|
||||||
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
|
|
||||||
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
|
|
||||||
7. 参数管理:对系统动态配置常用参数。
|
|
||||||
8. 通知公告:系统通知公告信息发布维护。
|
|
||||||
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
|
|
||||||
10. 登录日志:系统登录日志记录查询包含登录异常。
|
|
||||||
11. 在线用户:当前系统中活跃用户状态监控。
|
|
||||||
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
|
|
||||||
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
|
|
||||||
14. 系统接口:根据业务代码自动生成相关的api接口文档。
|
|
||||||
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
|
|
||||||
16. 缓存监控:对系统的缓存信息查询,命令统计等。
|
|
||||||
17. 在线构建器:拖动表单元素生成相应的HTML代码。
|
|
||||||
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
|
|
||||||
|
|
||||||
## 系统说明
|
|
||||||
|
|
||||||
本系统基于开源RuoYi-Vue框架进行定制开发,已进行以下定制化改造:
|
|
||||||
|
|
||||||
1. 项目包名:com.ruoyi.* → com.ddnai.*
|
|
||||||
2. 模块命名:ruoyi-* → ry-xinli-*
|
|
||||||
3. 品牌标识:全面更换为"动动脑(DDNAI)"
|
|
||||||
4. 数据库表前缀:sys_* → ddn_*(新业务表)
|
|
||||||
|
|
||||||
## 技术选型
|
|
||||||
|
|
||||||
**后端技术**
|
|
||||||
- Spring Boot 2.5.15
|
|
||||||
- Spring Security 5.7
|
|
||||||
- MyBatis 3.x
|
|
||||||
- Redis
|
|
||||||
- JWT
|
|
||||||
- Druid
|
|
||||||
|
|
||||||
**前端技术**
|
|
||||||
- Vue 2.6.12
|
|
||||||
- Element UI 2.15
|
|
||||||
- Axios
|
|
||||||
- Vuex
|
|
||||||
|
|
||||||
333
项目介绍/安全配置修改说明.md
333
项目介绍/安全配置修改说明.md
|
|
@ -1,333 +0,0 @@
|
||||||
# 安全配置修改说明
|
|
||||||
|
|
||||||
**重要提醒:** 以下配置已使用新的默认值替换原有默认值,但在部署到生产环境前仍需根据实际情况进一步修改!
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ✅ 已修改的默认配置
|
|
||||||
|
|
||||||
### 1. JWT令牌密钥 ✅
|
|
||||||
|
|
||||||
**文件:** `ry-xinli-admin/src/main/resources/application.yml`
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
token:
|
|
||||||
secret: YWFhMzlhOGEtYTdjYi00NTUzLWFhMDct # ✅ 已修改
|
|
||||||
```
|
|
||||||
|
|
||||||
**原值:** `abcdefghijklmnopqrstuvwxyz`
|
|
||||||
**新值:** `YWFhMzlhOGEtYTdjYi00NTUzLWFhMDct`
|
|
||||||
**状态:** ✅ 已使用随机值替换
|
|
||||||
|
|
||||||
> ⚠️ **生产环境建议:** 使用更长的随机字符串(建议64位)
|
|
||||||
|
|
||||||
**生成新密钥的方法:**
|
|
||||||
```bash
|
|
||||||
# 方法1:使用OpenSSL
|
|
||||||
openssl rand -base64 48
|
|
||||||
|
|
||||||
# 方法2:使用PowerShell
|
|
||||||
[Convert]::ToBase64String((1..48|%{Get-Random -Max 256}))
|
|
||||||
|
|
||||||
# 方法3:在线生成
|
|
||||||
# 访问 https://www.random.org/strings/
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 2. 数据库密码 ✅
|
|
||||||
|
|
||||||
**文件:** `ry-news-admin/src/main/resources/application-druid.yml`
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
master:
|
|
||||||
username: root
|
|
||||||
password: ddnai@2025#mysql # ✅ 已修改
|
|
||||||
```
|
|
||||||
|
|
||||||
**原值:** `password`
|
|
||||||
**新值:** `ddnai@2025#mysql`
|
|
||||||
**状态:** ✅ 已使用强密码替换
|
|
||||||
|
|
||||||
> ⚠️ **部署时必须修改为实际数据库密码!**
|
|
||||||
|
|
||||||
**强密码建议:**
|
|
||||||
- 长度至少12位
|
|
||||||
- 包含大小写字母、数字、特殊字符
|
|
||||||
- 不使用字典单词或常见组合
|
|
||||||
- 定期更换(建议3-6个月)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 3. Druid监控密码 ✅
|
|
||||||
|
|
||||||
**文件:** `ry-news-admin/src/main/resources/application-druid.yml`
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
statViewServlet:
|
|
||||||
login-username: ddnai_admin # ✅ 已修改
|
|
||||||
login-password: Ddnai@2025#Druid # ✅ 已修改
|
|
||||||
```
|
|
||||||
|
|
||||||
**原值:**
|
|
||||||
- 用户名: `ruoyi`
|
|
||||||
- 密码: `123456`
|
|
||||||
|
|
||||||
**新值:**
|
|
||||||
- 用户名: `ddnai_admin`
|
|
||||||
- 密码: `Ddnai@2025#Druid`
|
|
||||||
|
|
||||||
**状态:** ✅ 已使用强密码替换
|
|
||||||
|
|
||||||
> ⚠️ **访问地址:** `http://localhost:8080/druid/`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔒 生产环境部署检查清单
|
|
||||||
|
|
||||||
### 必须修改的配置
|
|
||||||
|
|
||||||
- [ ] **JWT密钥** - 修改为64位随机字符串
|
|
||||||
```yaml
|
|
||||||
# 文件: application.yml
|
|
||||||
token:
|
|
||||||
secret: [生成新的64位随机密钥]
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] **数据库密码** - 修改为实际数据库密码
|
|
||||||
```yaml
|
|
||||||
# 文件: application-druid.yml
|
|
||||||
master:
|
|
||||||
username: [实际数据库用户名]
|
|
||||||
password: [实际数据库密码]
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] **Redis密码** - 如果Redis有密码,必须配置
|
|
||||||
```yaml
|
|
||||||
# 文件: application.yml
|
|
||||||
redis:
|
|
||||||
password: [Redis实际密码]
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] **Druid监控密码** - 修改为强密码
|
|
||||||
```yaml
|
|
||||||
# 文件: application-druid.yml
|
|
||||||
statViewServlet:
|
|
||||||
login-username: [自定义管理员名称]
|
|
||||||
login-password: [强密码]
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] **关闭Swagger** - 生产环境必须关闭
|
|
||||||
```yaml
|
|
||||||
# 文件: application.yml
|
|
||||||
swagger:
|
|
||||||
enabled: false
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] **修改文件上传路径**
|
|
||||||
```yaml
|
|
||||||
# 文件: application.yml
|
|
||||||
ruoyi:
|
|
||||||
profile: /home/ddnai/uploadPath # 修改为实际路径
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎯 不同环境的配置策略
|
|
||||||
|
|
||||||
### 开发环境
|
|
||||||
- ✅ 使用修改后的默认值即可
|
|
||||||
- ✅ 可以开启Swagger调试
|
|
||||||
- ✅ 可以使用简单的数据库密码
|
|
||||||
|
|
||||||
### 测试环境
|
|
||||||
- ⚠️ 建议使用独立的JWT密钥
|
|
||||||
- ⚠️ 使用与生产环境相同强度的密码
|
|
||||||
- ⚠️ 关闭Druid监控的公网访问
|
|
||||||
|
|
||||||
### 生产环境
|
|
||||||
- ❗ **必须**修改所有默认值
|
|
||||||
- ❗ **必须**关闭Swagger
|
|
||||||
- ❗ **必须**使用强密码
|
|
||||||
- ❗ **必须**配置HTTPS
|
|
||||||
- ❗ **必须**限制Druid监控访问IP
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔐 密码强度建议
|
|
||||||
|
|
||||||
### JWT密钥
|
|
||||||
```
|
|
||||||
长度: 64位以上
|
|
||||||
字符集: Base64或随机字符
|
|
||||||
示例: Ym9keTp7InVzZXJJZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoi
|
|
||||||
```
|
|
||||||
|
|
||||||
### 数据库密码
|
|
||||||
```
|
|
||||||
长度: 16位以上
|
|
||||||
字符集: 大小写字母+数字+特殊字符
|
|
||||||
示例: MyS3cur3P@ssw0rd!2025#Db
|
|
||||||
```
|
|
||||||
|
|
||||||
### 管理后台密码
|
|
||||||
```
|
|
||||||
长度: 12位以上
|
|
||||||
字符集: 大小写字母+数字+特殊字符
|
|
||||||
示例: Admin@Dd2025#Secure
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📋 密钥管理最佳实践
|
|
||||||
|
|
||||||
### 1. 环境变量方式(推荐)
|
|
||||||
```bash
|
|
||||||
# Linux/Mac
|
|
||||||
export JWT_SECRET="your-secret-key"
|
|
||||||
export DB_PASSWORD="your-db-password"
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
set JWT_SECRET=your-secret-key
|
|
||||||
set DB_PASSWORD=your-db-password
|
|
||||||
```
|
|
||||||
|
|
||||||
在配置文件中引用:
|
|
||||||
```yaml
|
|
||||||
token:
|
|
||||||
secret: ${JWT_SECRET}
|
|
||||||
|
|
||||||
datasource:
|
|
||||||
password: ${DB_PASSWORD}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 配置文件加密(推荐)
|
|
||||||
使用Jasypt等工具加密配置文件中的敏感信息:
|
|
||||||
```xml
|
|
||||||
<!-- 添加依赖 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.github.ulisesbocchio</groupId>
|
|
||||||
<artifactId>jasypt-spring-boot-starter</artifactId>
|
|
||||||
<version>3.0.5</version>
|
|
||||||
</dependency>
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# 加密后的配置
|
|
||||||
token:
|
|
||||||
secret: ENC(encrypted-value)
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 配置中心方式(企业推荐)
|
|
||||||
使用Nacos、Apollo等配置中心统一管理敏感配置:
|
|
||||||
- 集中管理
|
|
||||||
- 动态更新
|
|
||||||
- 权限控制
|
|
||||||
- 审计日志
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚨 安全告警配置
|
|
||||||
|
|
||||||
### 密码泄露监控
|
|
||||||
- 定期检查日志文件,确保没有密码泄露
|
|
||||||
- 使用工具扫描代码仓库中的敏感信息
|
|
||||||
- 建议使用 git-secrets 防止密码提交
|
|
||||||
|
|
||||||
### 访问控制
|
|
||||||
```yaml
|
|
||||||
# 限制Druid监控访问IP
|
|
||||||
druid:
|
|
||||||
statViewServlet:
|
|
||||||
allow: 127.0.0.1,192.168.1.0/24 # 仅允许内网访问
|
|
||||||
```
|
|
||||||
|
|
||||||
### 日志脱敏
|
|
||||||
确保日志中不输出敏感信息:
|
|
||||||
```java
|
|
||||||
// 密码脱敏示例
|
|
||||||
log.info("用户登录: {}, 密码: {}", username, "******");
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ✅ 修改完成后验证
|
|
||||||
|
|
||||||
### 1. JWT密钥验证
|
|
||||||
```bash
|
|
||||||
# 启动后登录系统,检查token是否正常生成
|
|
||||||
curl -X POST http://localhost:8080/login \
|
|
||||||
-d '{"username":"admin","password":"admin123"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 数据库连接验证
|
|
||||||
```bash
|
|
||||||
# 启动应用,检查日志
|
|
||||||
# 应显示: HikariPool-1 - Starting...
|
|
||||||
# 应显示: HikariPool-1 - Start completed.
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Druid监控验证
|
|
||||||
```bash
|
|
||||||
# 访问监控页面
|
|
||||||
http://localhost:8080/druid/
|
|
||||||
# 使用新的用户名密码登录
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📞 问题排查
|
|
||||||
|
|
||||||
### 启动失败 - JWT相关错误
|
|
||||||
```
|
|
||||||
原因: JWT密钥不符合要求
|
|
||||||
解决: 确保密钥为Base64编码,长度足够
|
|
||||||
```
|
|
||||||
|
|
||||||
### 数据库连接失败
|
|
||||||
```
|
|
||||||
原因: 密码配置错误或特殊字符未转义
|
|
||||||
解决: 检查密码是否正确,特殊字符使用引号包裹
|
|
||||||
```
|
|
||||||
|
|
||||||
### Druid监控无法访问
|
|
||||||
```
|
|
||||||
原因: IP限制或密码错误
|
|
||||||
解决: 检查allow配置和密码设置
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📊 当前配置状态
|
|
||||||
|
|
||||||
| 配置项 | 原默认值 | 新默认值 | 安全等级 | 建议 |
|
|
||||||
|-------|---------|---------|---------|------|
|
|
||||||
| JWT密钥 | `abcdefg...xyz` | `YWFhMzlh...MjVzLW` | 🟡 中等 | 生产环境使用64位 |
|
|
||||||
| 数据库密码 | `password` | `ddnai@2025#mysql` | 🟢 较强 | 改为实际密码 |
|
|
||||||
| Druid用户名 | `ruoyi` | `ddnai_admin` | 🟢 良好 | 可自定义 |
|
|
||||||
| Druid密码 | `123456` | `Ddnai@2025#Druid` | 🟢 较强 | 建议16位以上 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎉 总结
|
|
||||||
|
|
||||||
✅ **已完成的改进:**
|
|
||||||
1. JWT密钥从简单字符串改为随机Base64编码
|
|
||||||
2. 数据库密码从弱密码改为强密码
|
|
||||||
3. Druid监控账号密码全面加强
|
|
||||||
4. 添加了配置注释提醒
|
|
||||||
|
|
||||||
⚠️ **仍需注意:**
|
|
||||||
1. 部署到生产环境前必须修改所有密码
|
|
||||||
2. 定期更换密钥和密码
|
|
||||||
3. 使用配置中心或环境变量管理敏感信息
|
|
||||||
4. 关闭生产环境的调试接口
|
|
||||||
|
|
||||||
🔒 **安全是一个持续的过程,请定期检查和更新配置!**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**最后更新时间:** 2025-10-30
|
|
||||||
**修改人员:** AI Assistant
|
|
||||||
**修改版本:** v1.0.0
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user