datai/datai-scenes/datai-scene-salesforce/docs/prompts/2026-01-29-001-01-prompt-认证和会话管理.md

5.5 KiB
Raw Permalink Blame History

提示词:认证和会话管理

引用真源

需求描述

根据需求文档,实现 Salesforce Partner API 的认证和会话管理功能,包括:

  1. 获取会话信息Session ID、实例 URL
  2. 获取用户信息(用户 ID、用户名、邮箱、组织信息等
  3. 修改密码(旧密码验证、新密码设置)
  4. 工厂模式管理连接(连接缓存、自动 Session 有效性检查)
  5. RESTful API 接口(获取会话信息、获取用户信息、修改密码)

设计方案

根据设计文档,采用以下技术方案:

  1. 工厂模式:使用 PartnerConnectionFactory 工厂类创建和管理 PartnerConnection 连接,继承 AbstractConnectionFactory 抽象类
  2. 连接缓存:利用 AbstractConnectionFactory 提供的连接缓存和自动 Session 有效性检查功能
  3. 会话管理:集成 SessionManager 获取会话信息,支持 Session 过期时自动重新登录
  4. RESTful API提供 3 个 REST API 接口(获取会话信息、获取用户信息、修改密码)
  5. 异常处理:使用 datai-salesforce-common 模块的异常体系,统一处理各种异常情况
  6. 技术栈Spring Boot 3.x、Spring Security 6.x、MyBatis Plus 3.x、Salesforce Partner API WSC 58.x
  7. 数据模型:不涉及数据库表,所有数据均来自 Salesforce API
  8. 性能优化:连接缓存、多线程安全、压缩传输
  9. 安全设计HTTPS 加密传输、权限控制、防注入

输出格式要求

  1. 必须包含以下文件:

    • FactoryPartnerConnectionFactory.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/factory/PartnerConnectionFactory.java
    • Service 接口:IPartnerConnectionService.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/IPartnerConnectionService.java
    • Service 实现:PartnerConnectionServiceImpl.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/service/impl/PartnerConnectionServiceImpl.java
    • ControllerPartnerConnectionController.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/controller/PartnerConnectionController.java
    • DTOSessionInfoDto.javaUserInfoDto.javaChangePasswordDto.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/dto/
    • VOSessionInfoVo.javaUserInfoVo.java(路径:datai-salesforce-partner/src/main/java/com/datai/partner/model/vo/
  2. 必须包含单元测试:

    • PartnerConnectionServiceImplTest.java(路径:datai-salesforce-partner/src/test/java/com/datai/partner/service/impl/PartnerConnectionServiceImplTest.java
  3. 必须符合 Spring Boot 最佳实践

  4. 必须遵循若依框架规范

  5. 必须使用 partner.jar 中的现有类Connector、PartnerConnection、GetUserInfoResult 等)

代码规范要求

  1. 类命名:首字母大写,驼峰命名,如 PartnerConnectionFactory
  2. 方法命名:首字母小写,驼峰命名,如 getSessionId
  3. 变量命名:首字母小写,驼峰命名,如 sessionId
  4. 注释规范:
    • 类注释:使用 /** */,包含类功能描述、作者、创建时间
    • 方法注释:使用 /** */,包含方法功能、参数、返回值、异常描述
    • 字段注释:使用 /** */,包含字段功能描述
  5. 代码格式:使用 4 个空格缩进,行宽不超过 120 字符
  6. 导入规范:使用 import 静态导入,避免通配符导入
  7. 包结构:按照 Controller、Service、Factory、DTO、VO 分层组织

测试要求

  1. 单元测试覆盖率不低于 80%
  2. 测试用例包含以下场景:
    • 获取会话信息成功
    • 获取用户信息成功
    • 修改密码成功
    • Session 无效异常
    • Session 过期异常
    • 连接失败异常
  3. 使用 JUnit 5 和 Mockito 进行测试
  4. 测试用例命名规范:test+方法名+场景,如 testGetSessionIdSuccess
  5. 测试数据使用 Mockito 模拟 SessionManager 和 PartnerConnection

注意事项

  1. 必须使用 partner.jar 中的现有类Connector、PartnerConnection、GetUserInfoResult 等),不进行二次封装
  2. 必须继承 AbstractConnectionFactory利用其提供的连接缓存和自动 Session 有效性检查功能
  3. 必须使用 SessionManager 获取会话信息,固定使用 "source" orgType
  4. 必须使用 datai-salesforce-common 模块的异常类SalesforceAuthException、SalesforceLoginException 等)
  5. 必须使用 @PreAuthorize("@ss.hasLogin()") 进行权限控制
  6. 必须使用 @Valid 注解进行参数验证
  7. 必须使用 @Tag 和 @Operation 注解生成 Swagger 文档
  8. 必须使用 @Slf4j 注解进行日志记录
  9. 必须使用 @Autowired 注解进行依赖注入
  10. 必须使用 @RestController 和 @RequestMapping 注解定义 REST API
  11. 必须使用 @GetMapping、@PostMapping 注解定义 HTTP 方法
  12. 必须使用 @RequestBody 注解接收请求体参数
  13. 必须使用 @Schema 注解定义 Swagger 文档
  14. 必须使用 Lombok 的 @Data、@EqualsAndHashCode 等注解简化代码
  15. 必须使用 @Component 注解标记 Factory 类为 Spring 组件
  16. 必须使用 @Service 注解标记 Service 实现类为 Spring 服务
  17. 必须使用 @Override 注解标记重写的方法
  18. 必须使用 try-catch 块捕获异常,并转换为自定义异常
  19. 必须使用 log.error() 记录错误日志
  20. 必须使用 log.info() 记录操作日志