跳转至

安全(SecurityController)

提供 KMS 知识管理模块「安全域」的能力:当前用户注销登录,并清除 SSO 与本地登录相关 Cookie。本控制器仅有 1 个端点。

  • 接口类型:REST 资源(@RestController,方法未声明 produces,由全局消息转换器按 JSON 处理)
  • 基址${myapps.context-path.kms:}/api(类级 @RequestMapping 仅声明单一前缀)
  • Tag:kms安全模块

公共说明

  • 鉴权(据源码 KmsMvcConfig + KmsSecurityFilterKmsMvcConfig 注册全局 Servlet 过滤器 KmsSecurityFilter(URL 模式 /*,context-path 为 / 时为 /kms/*)。本控制器路径 /api/runtime/logout 不在 KmsSecurityFilter.isExcludeURI 的豁免名单内(豁免仅覆盖 /login.*/admin/domain.*/tray/service/authtimeservice/OfficeServer.*outsideshare/.*/preview、静态资源后缀、actuator/health 等)。过滤器调用 Security.getUserIdFromToken(request),取不到用户则返回 HTTP 401因此本端点需 accessToken,可通过以下任一方式传递(据 Security.getUserIdFromToken):query 参数 accessToken、query 参数 access_token(移动端)、请求头 accessToken、Cookie accessToken、请求头 Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。
  • 执行用户:控制器内继承自 AbstractBaseControllersessionresponse 字段由 Spring 注入;本端点不调用 getUser()
  • 响应结构:统一 Resource(见 ../index.md「统一响应结构」),字段为 errcode/errmsg/data/errorsdataAbstractBaseController.Resource 构造器执行 ESAPI.encode(data) 做 XSS 编码。

1. 用户注销

注销当前用户:使 HTTP Session 失效,并清除一系列登录态 Cookie(SSO 登录账号、域名、邮箱、verify_loginautologinaccessTokenisFromLogin 等)。若平台认证类型为 SSO,返回 SSO 注销跳转地址;否则返回空串。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/runtime/logout(完整:{kms-context}/api/runtime/logout
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms安全模块

请求参数

无。

请求示例

POST /api/runtime/logout?accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataString,SSO 模式下为 Web.SSO_LOGOUT_REDIRECT 配置的跳转地址;非 SSO 模式下为空串 ""

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": "",
  "errors": null
}

说明:本端点会主动 session.invalidate() 并清除 accessToken 等 Cookie,调用方在收到响应后通常需跳转至登录页;服务端不返回 HTTP 4xx 状态码(仅在 KmsSecurityFilter 层因缺失 accessToken 时返回 HTTP 401)。