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内捕获Exception并e.printStackTrace()后返回errcode=500、errmsg=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
响应¶
结构:统一 Resource。
data:DataPackage<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
}
2. Swagger 登录¶
为指定用户 id 签发一个 JWT(Security.generateToken(userid)),并以 accessToken(Security.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 |
请求示例¶
响应¶
结构:统一 Resource。
data:字符串 "登陆成功"。
注: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 }
3. Swagger 注销¶
按 token 中解析的用户 id(Security.getUserIdFromToken)从 AuthTimeServiceManager 移除当前用户,并清空浏览器 adminToken Cookie。
注:源码读取的是
Security.getUserIdFromToken(request)(非getAdminIdFromToken),并清空Security.ADMIN_TOKENCookie;与登录端点签发的 Cookie 名(ACCESS_TOKEN)存在不一致,是源码历史遗留。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/swagger/logout(完整:{manager-context}/api/authtime/swagger/logout) - 鉴权:是(仍需 adminToken 才能访问本端点)
- Tag:(控制器未声明
@Tag)
请求参数¶
无。
请求示例¶
响应¶
结构:统一 Resource。
data:字符串 "注销成功"。
| 条件 | errcode | errmsg | data |
|---|---|---|---|
| 成功 | 0 | ok | 注销成功 |
| 抛异常 | 500 | <异常信息> |
null |
成功示例:
失败示例: