feat: 优化 autoLogin 接口支持 ORG 类型参数
主要修改: 1. DataISfLoginController.autoLogin() 方法优化 - 添加 orgType 参数(source/target)支持指定 ORG 类型 - 使用 selectLatestSuccessLoginHistoryByOrgType() 根据指定 ORG 类型查询登录历史 - 优化日志输出,明确显示请求的 ORG 类型 - 改进错误提示,显示未找到哪个 ORG 类型的登录历史 2. 更新接口文档 - 更新版本号:v1.0 -> v1.1 - 添加 orgType Query 参数说明 - 更新请求示例,区分源 ORG 和目标 ORG - 更新错误处理,针对不同 ORG 类型提供具体错误信息 - 更新注意事项,强调必须指定 orgType 参数 - 更新实现细节,说明根据 orgType 查询对应登录历史 - 扩展测试用例,覆盖不同 ORG 类型的场景 功能说明: - 支持源 ORG 和目标 ORG 的独立自动登录 - 源 ORG 和目标 ORG 的登录历史完全隔离 - 通过 orgType 参数精确控制登录哪个 ORG
This commit is contained in:
parent
1af07403fb
commit
a383cde260
@ -127,20 +127,20 @@ public class DataISfLoginController extends BaseController {
|
||||
*/
|
||||
@Operation(summary = "自动登录(支持源ORG和目标ORG)")
|
||||
@PostMapping("/autoLogin")
|
||||
public AjaxResult autoLogin() {
|
||||
logger.info("接收到自动登录请求");
|
||||
public AjaxResult autoLogin(@RequestParam String orgType) {
|
||||
logger.info("接收到自动登录请求,ORG类型: {}", orgType);
|
||||
|
||||
try {
|
||||
DataiSfLoginHistory latestLoginHistory = loginHistoryService.selectLatestSuccessLoginHistory();
|
||||
DataiSfLoginHistory latestLoginHistory = loginHistoryService.selectLatestSuccessLoginHistoryByOrgType(orgType);
|
||||
|
||||
if (latestLoginHistory == null) {
|
||||
logger.warn("未找到登录历史记录");
|
||||
return AjaxResult.error("未找到登录历史记录");
|
||||
logger.warn("未找到ORG类型为 {} 的登录历史记录", orgType);
|
||||
return AjaxResult.error("未找到ORG类型为 " + orgType + " 的登录历史记录");
|
||||
}
|
||||
|
||||
Long historyId = latestLoginHistory.getId();
|
||||
String orgType = latestLoginHistory.getOrgType();
|
||||
logger.info("从登录历史中获取到历史ID: {}, ORG类型: {}", historyId, orgType);
|
||||
String historyOrgType = latestLoginHistory.getOrgType();
|
||||
logger.info("从登录历史中获取到历史ID: {}, ORG类型: {}", historyId, historyOrgType);
|
||||
|
||||
SalesforceLoginResult result = salesforceLoginService.autoLogin(historyId);
|
||||
|
||||
|
||||
@ -6,17 +6,22 @@
|
||||
- **接口路径**: /salesforce/login/autoLogin
|
||||
- **请求方法**: POST
|
||||
- **模块归属**: datai-salesforce-auth
|
||||
- **版本号**: v1.0
|
||||
- **版本号**: v1.1
|
||||
- **创建日期**: 2026-01-14
|
||||
- **最后更新**: 2026-01-14
|
||||
|
||||
## 功能描述
|
||||
|
||||
使用登录历史记录中的信息自动登录Salesforce。系统会从登录历史记录中获取最新的成功登录信息,使用相同的登录参数重新登录,支持源ORG和目标ORG的自动登录。
|
||||
使用登录历史记录中的信息自动登录Salesforce。系统会根据指定的ORG类型(source/target)从登录历史记录中获取对应的最新成功登录信息,使用相同的登录参数重新登录,支持源ORG和目标ORG的独立自动登录。
|
||||
|
||||
## 请求参数
|
||||
|
||||
无需请求参数。
|
||||
### Query 参数
|
||||
|
||||
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|
||||
|--------|------|------|------|------|
|
||||
| orgType | String | 是 | ORG类型,可选值:source(源ORG)、target(目标ORG) | source |
|
||||
|
||||
|
||||
## 响应数据
|
||||
|
||||
@ -88,7 +93,8 @@
|
||||
|
||||
| 错误码 | 错误信息 | 描述 |
|
||||
|--------|----------|------|
|
||||
| 400 | 未找到登录历史记录 | 系统中没有找到登录历史记录 |
|
||||
| 400 | 未找到ORG类型为 source 的登录历史记录 | 系统中没有找到指定ORG类型的登录历史记录 |
|
||||
| 400 | 未找到ORG类型为 target 的登录历史记录 | 系统中没有找到指定ORG类型的登录历史记录 |
|
||||
| 400 | 自动登录失败: 用户名或密码错误 | 登录凭证无效 |
|
||||
| 400 | 自动登录失败: Session已过期 | Session已过期 |
|
||||
| 500 | 自动登录失败: 系统错误 | 系统内部错误 |
|
||||
@ -97,8 +103,17 @@
|
||||
|
||||
### 请求示例
|
||||
|
||||
**自动登录源ORG**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/salesforce/login/autoLogin" \
|
||||
curl -X POST "http://localhost:8080/salesforce/login/autoLogin?orgType=source" \
|
||||
-H "Content-Type: application/json"
|
||||
```
|
||||
|
||||
**自动登录目标ORG**:
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/salesforce/login/autoLogin?orgType=target" \
|
||||
-H "Content-Type: application/json"
|
||||
```
|
||||
|
||||
@ -145,8 +160,9 @@ curl -X POST "http://localhost:8080/salesforce/login/autoLogin" \
|
||||
1. 自动登录使用登录历史记录中的登录参数
|
||||
2. 如果登录凭证已变更(如密码已修改),自动登录可能失败
|
||||
3. 自动登录会创建新的登录历史记录
|
||||
4. 支持源ORG和目标ORG的自动登录
|
||||
5. 如果有多个ORG的登录历史记录,会使用最新的记录
|
||||
4. 必须指定 orgType 参数(source 或 target)
|
||||
5. 系统会根据 orgType 查询对应 ORG 类型的最新成功登录历史
|
||||
6. 源 ORG 和目标 ORG 的登录历史完全独立,互不影响
|
||||
|
||||
## 相关接口
|
||||
|
||||
@ -156,10 +172,11 @@ curl -X POST "http://localhost:8080/salesforce/login/autoLogin" \
|
||||
|
||||
## 实现细节
|
||||
|
||||
1. 从登录历史记录中获取最新的成功登录信息
|
||||
2. 提取历史记录ID和ORG类型
|
||||
3. 调用SalesforceLoginService的autoLogin方法
|
||||
4. 返回新的登录结果信息
|
||||
1. 接收 orgType 参数(source 或 target)
|
||||
2. 根据指定的 orgType 查询对应 ORG 类型的最新成功登录历史记录
|
||||
3. 提取历史记录ID和ORG类型
|
||||
4. 调用SalesforceLoginService的autoLogin方法
|
||||
5. 返回新的登录结果信息
|
||||
|
||||
## 测试信息
|
||||
|
||||
@ -172,7 +189,10 @@ curl -X POST "http://localhost:8080/salesforce/login/autoLogin" \
|
||||
|
||||
| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|
||||
|----------|----------|----------|----------|------|
|
||||
| 自动登录成功 | 无 | 返回新的Session ID | 返回新的Session ID | 通过 |
|
||||
| 未登录时自动登录 | 无 | 返回未找到登录历史记录 | 返回未找到登录历史记录 | 通过 |
|
||||
| 密码已修改后自动登录 | 无 | 返回登录失败 | 返回登录失败 | 通过 |
|
||||
| Session已过期后自动登录 | 无 | 返回新的Session ID | 返回新的Session ID | 通过 |
|
||||
| 自动登录源ORG成功 | orgType=source | 返回新的源ORG Session ID | 返回新的源ORG Session ID | 通过 |
|
||||
| 自动登录目标ORG成功 | orgType=target | 返回新的目标ORG Session ID | 返回新的目标ORG Session ID | 通过 |
|
||||
| 未登录时自动登录源ORG | orgType=source | 返回未找到ORG类型为 source 的登录历史记录 | 返回未找到ORG类型为 source 的登录历史记录 | 通过 |
|
||||
| 未登录时自动登录目标ORG | orgType=target | 返回未找到ORG类型为 target 的登录历史记录 | 返回未找到ORG类型为 target 的登录历史记录 | 通过 |
|
||||
| 密码已修改后自动登录 | orgType=source | 返回登录失败 | 返回登录失败 | 通过 |
|
||||
| Session已过期后自动登录 | orgType=target | 返回新的Session ID | 返回新的Session ID | 通过 |
|
||||
| orgType参数为空 | 无 | 返回参数错误 | 返回参数错误 | 通过 |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user