Skip to content

架构与认证策略扩展 ​

本页描述当前 main 的 Go 2.0。旧 Python Profile、Runtime 和 school_runtime.py 接口保留在 1.x 架构资料,不能用于 Go 包。

源码布局 ​

OpenWrt 安装内容由 Makefile 决定。core/ 编译为设备上的 srunnet;root/ 提供 LuCI、服务及静态资源;scripts/ 和 tests/ 是开发主机材料。

按一次用户操作的流向查找源码:

阶段源码入口职责
CLI 或 LuCI 发起操作cli、LuCI controller解析输入、显示结果
本地控制协议controlUnix socket 请求与响应
服务协调daemon、application配置、互斥任务、调度及状态投影
领域与配置domain、config、policy类型、默认值、校验和决策
认证与门户auth、protocol、portal协议编码、认证事务和门户解析
设备与网络边界openwrt、transport、wireless、wifi接口绑定、设备调用及无线事务
参数与安装presets、strategy、update参数目录、编译期策略声明、独立更新与恢复

core/cmd/srunnet/main.go 是程序入口,root/etc/init.d/smart_srun 由 procd 管理主服务。更新使用独立 worker;停止主服务不会取消已开始的原生安装。配置和运行态的路径区别见配置参考。

扩展选择 ​

学校之间只有网关、AC_ID、SSID、后缀或登录参数不同,先修改预设或逐账号参数,见预设贡献。先检查字段契约和现有协议实现,再决定是否需要代码变化。

Go 的认证策略由 strategy.Strategy 与 Registry静态声明并编译进程序,不动态加载 Python 模块。策略描述额外字段和扩展命令,不能自行绕过统一网络边界;保留命令清单以该文件的 ReservedCommands 为准。

账号 operator_suffix 决定实际登录名;空字符串是明确的不加后缀,不等于尚未选择。school 选择认证策略,预设 ID 仅记录参数来源;刷新预设不能覆盖用户已保存的账号参数。对字段类型和默认行为的修改应通过 config.BuildSchema、config.Defaults 与对应回归检查保持一致。

LuCI 与任务状态契约 ​

界面由 Lua controller、CBI 和 ES5 的 smart_srun.js 组成,无前端 bundler 或设备端 Node 依赖。页面布局、中文文案和五步向导按源码仓 root/AGENTS.md 的兼容约束维护。

页面读取、远端刷新、真实验证与保存是不同动作。日志查询同时服务主面板和进度弹窗;修改日志格式时核对控制器的翻译与前端等级识别。动作终态不能被日常状态轮询覆盖,无线暂存连接必须能确认或回滚。完整约束在对应目录维护,不在本站复制另一套接口规范。

Go 2.x 已正式发布;最新版本与验证范围见下载页,Python 1.x 资料独立归档。