移动端应用列表(mobile.ApplicationController)¶
移动端工作台应用列表接口:返回当前用户可见的应用清单(含进入系统的跳转 URL,URL 中的 application 参数按当前用户密钥 DES 加密)。
范围说明:本控制器为移动端
cn.myapps.runtime.mobile.application.controller.ApplicationController,基址/runtime/app/applications。另有同名 REST 版cn.myapps.runtime.application.controller.ApplicationController(基址/api/runtime/applications),见 application.md,两者独立、不共用路由。
- 接口类型:REST 资源(
@Controller继承mobile.common.controller.BaseController,方法标注@ResponseBody,返回Map<String, Object>,由 Spring Jackson 序列化为 JSON 对象;响应非统一Resource,封装为{ "status": 0/1, "message": "ok"/"error", "data": <数据> },详见「公共说明 · 响应结构」) - 基址:
${myapps.context-path.runtime:}/runtime/app/applications - Tag:工作台模块(源码类级
@Tag(name = "工作台模块"))
公共说明¶
- 鉴权(据源码):基址
/runtime/app/applications不在RestSecurityHandlerInterceptor覆盖范围(拦截器仅覆盖/api/runtime/**与/api/rest/bpm/**)。鉴权由RuntimeMvcConfig注册的全局过滤器RuntimeSecurityFilter(URL 模式/*)执行:过滤器解析AuthTimeServiceManager.getWebUser(request),取不到登录用户则返回401(或 SSO 模式下重定向到/signon)。所有端点均需 accessToken,可通过 Cookie / 请求头 / query 参数任一方式传递。控制器内getUserId()通过Security.getUserIdFromToken(request)还原用户 id;无登录态时返回null,控制器会直接返回失败结果(addActionResult(false, null))。 - 响应结构(据源码
mobile.common.controller.BaseController.addActionResult):本控制器所有端点返回Map<String, Object>,结构为: status:0成功,1失败;message:成功ok,失败error;data:业务数据;当业务返回null时data字段缺省;写入前由ESAPI.encode(data)做 XSS 编码。- 与统一
Resource(errcode/errmsg/data/errors)约定不一致,本文档按源码如实记录。 - DES 加密:返回 URL 中的
application参数为应用 id 经DesUtil.encryptTextByUserId(app.getId(), userId)按当前用户密钥加密后的密文;知识管理应用(KMAPPID)走独立的 KMS 移动端入口并附带一次性 token。
1. 获取应用列表¶
返回当前用户可见的应用清单,每个应用附带「进入系统」的跳转 URL(URL 中的 application 参数为按当前用户密钥 DES 加密后的密文)。
- 接口类型:REST 资源
- 请求方式:
@RequestMapping(未限定 method,支持 GET / POST 等所有方法) - 请求路径:
/list.action(完整:{runtime-context}/runtime/app/applications/list.action) - 鉴权:是(需 accessToken;无登录态时
getUserId()返回null,控制器直接返回失败结果) - Tag:工作台模块
请求参数¶
无业务参数(仅 accessToken)。
请求示例¶
响应¶
结构:Map,固定字段见「公共说明 · 响应结构」。
data:List<Map>,元素结构 { id, name, description, logourl(固定为 "/uploads/app/oa.png"), jumpToUrl: { url1: { url, name } } }。
- 一般应用 url 形如 /mobile/index.html#/?application=<DES密文>&mode=app&jump=homepage&userId=<用户id>;
- 知识管理应用(id=KMAPPID)url 形如 /kms/kmsphone/index.html?application=km&mode=app&jump=homepage&userId=<用户id>&accessToken=<一次性token>。
{
"status": 0,
"message": "ok",
"data": [
{
"id": "__APPID__",
"name": "OA 办公",
"description": "OA 办公系统",
"logourl": "/uploads/app/oa.png",
"jumpToUrl": {
"url1": {
"url": "/mobile/index.html#/?application=__DES加密密文__&mode=app&jump=homepage&userId=__USERID__",
"name": "进入系统"
}
}
}
]
}