系统辅助(DetailController)¶
提供运行时三类辅助能力:获取新数列(UUID)、按企业域 secret + 账号换取前台用户 accessToken、按模块清除对应缓存(配置/用户/部门/文档/流程状态/微信)。
- 接口类型:REST 资源(
@RestController+ 类级@RequestMapping(produces = APPLICATION_JSON_VALUE),继承自AbstractRuntimeController) - 基址:
${myapps.context-path.runtime:}/api - Tag:系统辅助模块
公共说明¶
- 鉴权(据源码
RuntimeMvcConfig+RestSecurityHandlerInterceptor):本控制器方法级路径前缀拼上类级/api后落在/api/runtime/**覆盖范围内,但豁免判定按 URI 字面匹配—— GET /api/runtime/sequence:不在豁免名单,需 accessToken(据源码)。拦截器走Security.getUserIdFromToken(request),未取到再尝试Security.getDebugUserIdFromToken(request),两者皆无则拒绝访问;可通过 Cookie / 请求头 / query 参数任一方式传递。GET /api/runtime/secrets/{secret}/accessToken:据源码豁免——拦截器uri.indexOf("/accessToken") >= 0命中,无需 accessToken(用于服务端到端换取前台用户令牌)。GET /api/runtime/{module}/clear:据源码豁免——拦截器uri.endsWith("/clear")命中,无需 accessToken(供运维/定时清理缓存调用)。- 豁免规则全集详见 login.md「公共说明 · 鉴权」。
- 响应结构:
- 端点 1、2:统一
Resource(见 ../index.md「统一响应结构」)。 - 端点 3(清除缓存):非统一
Resource,控制器返回void,HTTP 200,无响应体。 - HTTP 状态码:所有端点类级标注
@ResponseStatus(HttpStatus.OK),成功统一返回 200。
1. 获取一个新数列¶
服务端生成并返回一个新的 UUID 字符串。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/runtime/sequence(完整:{runtime-context}/api/runtime/sequence) - 鉴权:是(需 accessToken,据源码)
- Tag:系统辅助模块
请求参数¶
无。
请求示例¶
响应¶
结构:统一 Resource。
data:string,UUID 字符串。
2. 获取前台用户accessToken¶
按企业域 secret 与登录账号 loginNo 换取该前台用户的 accessToken(JWT)。遍历所有企业域匹配 secret,命中且账号存在时返回 Security.generateToken(userId) 生成的令牌;任一条件不满足返回 errcode=500。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/runtime/secrets/{secret}/accessToken(完整:{runtime-context}/api/runtime/secrets/{secret}/accessToken) - 鉴权:否(据源码:拦截器
uri.indexOf("/accessToken") >= 0豁免) - Tag:系统辅助模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| secret | path | string | 是 | 企业域 secret key |
| loginNo | query | string | 是 | 用户登录账号 |
请求示例¶
响应¶
结构:统一 Resource。
data:string,accessToken(JWT)。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6Il9fWFhYWFhYIn0.xxxxxxxx",
"errors": null
}
失败示例(secret 或账号不匹配):
3. 清除配置缓存¶
按模块名清除对应缓存:config(PropertyUtil)/user(UserProcessBean)/dept(DepartmentProcessBean)/document(按 docId)/flowstate(按 stateId)/wechat(微信 secret 缓存)。无响应体;内部异常被吞仅打印堆栈。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/runtime/{module}/clear(完整:{runtime-context}/api/runtime/{module}/clear) - 鉴权:否(据源码:拦截器
uri.endsWith("/clear")豁免) - Tag:系统辅助模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| module | path | string | 是 | 模块名:config/user/dept/document/flowstate/wechat |
| applicationId | query | string | 否 | 软件 Id(document/flowstate 等模块按需使用,源码未直接消费) |
| datasourceId | query | string | 否 | 数据源 Id(保留参数,源码未直接消费) |
| docId | query | string | 否 | 文档 Id(module=document 时由 DocumentDAOAspect.clearCache(docId) 使用) |
| stateId | query | string | 否 | 流程状态 Id(module=flowstate 时由 FlowStateRTDAOAspect.clearCache(stateId) 使用) |
请求示例¶
响应¶
结构:非统一 Resource。控制器返回 void,HTTP 200,无响应体。