跳转至

SwaggerController(Swagger 演示登录辅助)

为 Swagger UI 在线调试提供一组辅助端点:按角色 + 域分页查询用户;为指定用户 id 即时签发一个 accessToken(注:源码使用 Security.ACCESS_TOKEN Cookie 名,但 manager 模块实际鉴权使用 adminToken);注销当前 token 持有者。

  • 类级基址${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>
  • Tag:控制器未声明 @Tag(源码无 @Tag 注解)
  • 控制器源码obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/swagger/SwaggerController.java
  • 公共说明
  • 类继承 BaseAuthTimeController,通过其 success(errmsg, data) / error(errcode, errmsg, errors) 返回统一 Resource(字段 errcode/errmsg/data/errors,结构见 ../index.md「统一响应结构」)。
  • 三端点均在 try/catch 内捕获 Exceptione.printStackTrace() 后返回 errcode=500errmsg=e.getMessage()data=null
  • 业务定位:仅服务于 Swagger UI 的在线调试体验(在浏览器内快速拿到 token 写 Cookie),**不是**正式登录入口;正式登录见 admin-login.md
  • 鉴权说明见 index.md「鉴权说明」(adminToken JWT,三端点不在白名单,需 adminToken)。

1. 根据角色获取用户

按角色 id + 企业域 id 分页查询用户列表(UserProcess.queryByRoleAndDomain)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/swagger/getuserlistbyrole(完整:{manager-context}/api/authtime/swagger/getuserlistbyrole
  • 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
  • Tag:(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
roleid query string 角色 id
domainid query string 企业域 id
currpage query int 当前页码,缺省 1
pagelines query int 每页条数,缺省 10

请求示例

GET /api/authtime/swagger/getuserlistbyrole?roleid=__R01&domainid=__P1UD2yVWpnFpUedONr&currpage=1&pagelines=10 HTTP/1.1

响应

结构:统一 ResourcedataDataPackage<UserVO>,字段:

字段 类型 说明
datas array\<UserVO> 当前页用户数组
linesPerPage int 每页条数
pageCount int 总页数
rowCount int 总记录数
pageNo int 当前页码(由 DataPackage 序列化)

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "datas": [
      { "id": "__U001", "name": "张三", "loginno": "zhangsan" }
    ],
    "linesPerPage": 10,
    "pageCount": 1,
    "rowCount": 1,
    "pageNo": 1
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. Swagger 登录

为指定用户 id 签发一个 JWT(Security.generateToken(userid)),并以 accessTokenSecurity.ACCESS_TOKEN)为名写入 Cookie。

注:源码使用的 Cookie 名是 Security.ACCESS_TOKEN(runtime 命名空间),与 manager 模块鉴权使用的 adminToken 不一致;该端点主要是为 Swagger UI 在线调试便利而保留,签发的 token 在 manager 模块核心鉴权链路上**不被认作 adminToken**。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/swagger/login(完整:{manager-context}/api/authtime/swagger/login
  • 鉴权:是(仍需 adminToken 才能访问本端点)
  • Tag:(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
userid query string 待签发 token 的用户 id

请求示例

POST /api/authtime/swagger/login?userid=__U001 HTTP/1.1

响应

结构:统一 Resourcedata:字符串 "登陆成功"

注:token 仅通过响应 Set-Cookie 头返回,不在响应 JSON 中

条件 errcode errmsg data
成功 0 ok 登陆成功
抛异常 500 <异常信息> null

成功示例

HTTP/1.1 200 OK
Set-Cookie: accessToken=<jwt>; Path=/; HttpOnly
Content-Type: application/json

{ "errcode": 0, "errmsg": "ok", "data": "登陆成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. Swagger 注销

按 token 中解析的用户 id(Security.getUserIdFromToken)从 AuthTimeServiceManager 移除当前用户,并清空浏览器 adminToken Cookie。

注:源码读取的是 Security.getUserIdFromToken(request)(非 getAdminIdFromToken),并清空 Security.ADMIN_TOKEN Cookie;与登录端点签发的 Cookie 名(ACCESS_TOKEN)存在不一致,是源码历史遗留。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/swagger/logout(完整:{manager-context}/api/authtime/swagger/logout
  • 鉴权:是(仍需 adminToken 才能访问本端点)
  • Tag:(控制器未声明 @Tag

请求参数

无。

请求示例

POST /api/authtime/swagger/logout HTTP/1.1

响应

结构:统一 Resourcedata:字符串 "注销成功"

条件 errcode errmsg data
成功 0 ok 注销成功
抛异常 500 <异常信息> null

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "注销成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }