- Web服务器,实现
http
接口,及前端资源代理 - 作为WebSocket服务端与其管理的其他Java进程客户端交互
- 权限认证,部分命令和操作需要认证用户权限
Modules 模块关系
┏━━━━━━━━━━━━━━━━━┓
┃ Browser ┃ ┏━━━━━━━━━━━━━━━━━┓
┗━━━━━━━━┯━━━━━━━━┛ ╭─────┨ jarboot-agent ┠──────────────╮
http│websocket │ ┗━━━━━━━━━━━━━━━━━┛ │JarbootClassLoader
│ │ │
▼ ▼ ▼ core作为客户端反向连接jarboot-server
┏━━━━━━━━━━━━━━━━━┓ attach ┏━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━┓
┃ jarboot-server ┠─────────>┃ target process ┠─────>┃ jarboot-core ┃<────╮
┗━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━┯━━━━━━━━┛ │
▲ │ │
╰─────────────────────────────────────────────────────╯ │ class loaded
http and websocket connect to jarboot-server │
┏━━━━━━━━━━━━━━━━━┓ │
┃ jarboot-spy ┠─────╯
┗━━━━━━━━━━━━━━━━━┛
Command execute 命令执行
websocket
┏━━━━━━━━━━━━━━━━━┓ websocket ┏━━━━━━━━━━━━━━━━━┓ send ┏━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Browser ┃<──────────>┃ jarboot-server ┠───────>┃ target process ┃
┗━━━━━━━━━━━━━━━━━┛ send/recv ┗━━━━━━━━━━━━━━━━━┛ ┃ ╭──────────────╮ ┃
▲ ┃ │ user code │ ┃
│ ┃ ╰──────────────╯ ┃
http │ websocket ┃ ╭──────────────╮ ┃
╰──────────────────╂───┤ jarboot-core │ ┃
result back ┃ ╰──────────────╯ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┛
Execute command Sequence:
╭──────────────╮ ╭────────────────╮ ╭───────────────╮
│ Browser │ │ jarboot-server │ │ target server │
╰──────┬───────╯ ╰───────┬────────╯ ╰──────┬────────╯
│ send command │ │
├─────────────────────>╭┴╮ send command │
│ │ ├───────────────────>╭┴╮
│ ╰┬╯ │ ├─╮ Execute command and
│ │ Large data http │ │ │ Render result
│ ╭┴╮<───────────────────┤ │<╯
│ │ │ │ │
│ │ │ WebSocket │ │
│ push │ │<───────────────────┤ │
╭┴╮<────────────────────┤ │ ╰┬╯
│ ├─╮ ╰┬╯ │
│ │ │Render UI │ │
│ │ │ │ │
│ │<╯ │ │
╰┬╯ │ │
│ │ │
$ mvn clean install
配置文件jarboot.properties
在与jar包同级的目录下的conf
目录,建议启动前修改jarboot.token.secret.key,启动后
修改默认的密码。