找回密码
 立即注册
搜索
查看: 38|回复: 2

Jync v1.8.0 新增统一认证 & 调整导航页面

[复制链接]

主题

0

回帖

0

积分

积分
0
发表于 7 天前 | 显示全部楼层 |阅读模式
•
企业门户的现有账号可以直接登录 Jync:支持「账号密码(OA 接口校验)」「网关头」「票据」三种统一认证方式,同一时刻只生效一种;导航按「配置管理」「日志管理」分组,新增系统日志查询页。界面把「项目」统一改称「同步任务」。升级后外部认证默认关闭,本地账号登录行为与 1.7.8 一致。


新功能
统一认证

•
配置位置:「配置管理 → 外部认证」(/external-auth)。三种方式共用一张配置卡:启用开关、认证方式、管理员用户名列表(逗号分隔、区分大小写)、门户登录地址、退出后跳转地址。

•
账号密码:Jync 在服务端把账号密码 POST 到管理员填写的登录接口,支持表单或 JSON 请求、请求/响应字段名(响应字段支持 data.user 点路径)、成功标识(留空时 HTTP 2xx 即成功)、管理员标识与超时(500–30000 ms)。密码只经过内存,不落库、不写日志。

•
网关头:网关/反向代理完成登录后,把用户标识放在约定的请求头里。Jync 只采信直接 TCP 对端位于回环或 app.security.trusted-proxies 内的请求;可选共享密钥头(加密存储、常量时间比较)。网关必须剥离客户端伪造的身份头。

•
票据:登录中心签发一次性 ticket 后跳回 /sso/entry?ticket=...,Jync 在服务端调用校验地址(GET 或 POST,票据参数名可配),校验通过才建立会话。票据不写审计、不在页面回显,落地页一律 302。

•
外部用户只保留会话:不写入 app_user,没有本地密码,因此也没有改密入口——服务端拒绝 /account/password,菜单项同时隐藏。

•
管理员判定:配置中的用户名列表命中即管理员;账号密码与票据还可用响应字段、网关头可用请求头标记授予管理员,其余外部用户为只读角色。

•
连通性测试:网关头与票据模式提供测试按钮,返回当前请求会被识别成谁、来源是否可信,以及一次真实票据校验的结果;不创建会话。

•
登录页分流:/login 按当前认证方式展示本地表单或门户引导页;本地账号表单在 /login/local,本地登录关闭后该地址仍可访问,但只显示已关闭提示。

•
关闭本地登录与恢复:关闭前必须先启用并完成外部认证配置,否则保存被拒;关闭时二次确认。关闭后 POST /login 也被拒绝。若外部认证随后不可用,以 JYN_RESET_LOGIN=true 启动一次即可重新打开本地登录并保存,修好外部配置后去掉变量重启。

•
退出跳转:可让退出登录后跳到门户的退出页(同站路径或 http(s) 地址,其他值回退到 /login?logout)。


导航与页面

•
导航分组:「配置管理」(数据库连接、AI 配置(已启用时)、外部认证(仅管理员))与「日志管理」(变更日志、审计日志(仅管理员)、系统日志);看板、同步任务、系统信息保持顶级。窄屏抽屉里分组退化为可展开的一行标题加缩进子项。

•
系统日志页(/system-logs,所有登录用户):按文件、级别(DEBUG / INFO / WARN / ERROR / 全部)与关键字(不区分大小写)过滤,黑底面板展示并高亮关键字;滚动归档按 gzip 解压读取。只读日志目录中由滚动策略生成的文件,最多扫描 16 MB(普通文件从尾部、归档从头部),返回最近 1000 条匹配行,并提示是否截断。

•
界面统一改称「同步任务」:导航、看板、列表、详情与设置中的「项目」文案全部改为「同步任务」;路由、数据表与 API 不变。


修复

•
版本卡的构建时间改按服务器时区显示,并标注 UTC±HH:MM 偏移:在 UTC+8 的机器上不再出现「11 点构建、却显示 03:20」的错觉;偏移保留后,排查时仍能还原精确时刻。

•
日志文件固定 UTF-8 编码:JDK 17 在中文 Windows 上默认字符集是 GBK,中文写进日志再读回会乱码;写入与系统日志页读取现在使用同一编码。

•
OA / 票据 / 网关头返回的用户名统一去掉控制字符并截断 64 字符,避免不可见字符进入会话与导航。

•
票据入口按客户端 IP 限流:同一地址 20 次校验失败后暂停 15 分钟,匿名调用无法持续触发外呼与审计写入。

•
空闲同步轮次不再以 INFO 刷吞吐日志:只有目标行数实际变化才记 INFO,未变化的整表比对与少量尾部批次降到 DEBUG;摘要新增 changed= 字段。

•
认证方式切换后旧入口不再放行:POST /login/oa 只在「账号密码」模式生效,/sso/entry 只在「票据」模式受理,与 /login 的分流判断一致。

•
升级前写入的配置行 local_login_enabled 为空时按「允许」加载,避免管理员原样保存页面时静默关闭本地登录。

•
表单内开关不再塌陷成不可点击(.field label 与 .switch 的显示规则冲突);开关打开为绿色、关闭为红色。

•
外部认证的 HTTP 客户端在进程内复用,不再每次登录或票据校验都新建连接池与选择器线程。

•
系统日志关键字高亮按原文下标定位:İ 等大小写映射会改变长度的字符此前会让高亮偏移、行尾命中甚至越界;现在在原字符串上逐位比较,不再借用小写副本的下标。

•
任务详情页「全量加载性能 → 并行度」的帮助文案与能力对齐:不再声称只支持单列整数主键,改为说明整数前导键按区间切分、其余键形态按采样边界切分、无主键表顺序加载(中英文同步修正)。

•
CDC 项目被 ERROR 帽挡住后,守护线程不再每 10 秒重复打印同一条 WARN:同一段停机只警告一次,后续心跳降到 DEBUG;ERROR 帽被摘除、消费者启动或项目停止后重新武装,下一次故障仍会正常告警。


安全加固

•
网关头模式只信任直接 TCP 对端在可信代理列表内(默认仅回环)的请求;共享密钥值加密存储、常量时间比较,密钥无法解密时一律拒绝。

•
OA / 票据地址只接受 http(s);明文 HTTP 必须显式开启「允许明文 HTTP」;重定向一律不跟随;响应体上限 64 KB;超时可配。

•
登录失败计数:本地账号与 OA 共用「用户名 + 客户端 IP」键(5 次失败锁 15 分钟);票据入口按 IP 单独限流。

•
失败审计只记录用户名、来源与错误类别;密码、票据与外部响应内容都不写日志与审计。

•
系统日志页有两层边界:文件名白名单加真实路径校验(拒绝 ../ 与符号链接逃逸),日志文本逐段转义后才插入高亮标记。

•
外部用户无法访问改密页面。


兼容性说明

•
默认行为不变:升级后 oa_auth_config 只有一行且未启用,访问 /login 会 302 到 /login/local,本地账号表单照常渲染;旧书签与脚本不受影响。

•
新增表:oa_auth_config 由 ddl-auto=update 首次启动自动创建;auth_mode 列名避开 Oracle / DM / YashanDB / Oscar 的保留字 MODE。该表随 ./data 一起备份。

•
旧地址:/oa/settings 保留为 302 → /external-auth(仅 GET;旧表单字段已改名,POST 不兼容)。

•
新增环境变量:JYN_RESET_LOGIN(应急恢复,平时不生效)、JYN_COOKIE_SAME_SITE(默认 lax;iframe 嵌入需配合 HTTPS 设为 None,并同时设置 JYN_COOKIE_SECURE=true)。

•
外部认证属于 SSRF 面:地址由管理员填写,只填可信内网地址;网关头模式要求 Jync 部署在网关之后,不能直接暴露。

•
元数据库换库:新增 MySQL 8.0、PostgreSQL 16、Oracle Free 23 容器中的建表与读写契约测试(*IT 需 Docker)。PostgreSQL 用例同时覆盖 Kingbase / openGauss / HighGo / Vastbase 所在的方言族。

•
同步行为不变:本次不改变任何同步、CDC 或类型映射路径。


文档

•
README.md / README_EN.md 重写:补充开发背景、工具对比、详细部署步骤、调度设置、全量加载调参与列清洗;截图改为九宫格并支持点击放大。

•
全量加载调参补充硬限制与建议区间:批量大小与读取批量 1–20000,并行度 1–8 且受连接池压制,chunk-size 小于等于 0 时关闭分块;同时给出连接池与并行度的反算关系。


测试

•
2370 个测试:2369 通过,0 失败;1 个仅限 Linux 的密钥文件权限用例在 macOS 上按环境跳过。*IT 需 Docker 另跑。


升级

•
替换 jync.jar 重启即可。升级前备份 ./data 与 application.yml。

•
容器部署将镜像 tag 更新为 jync:1.8.0(Docker Compose 与 deploy/k8s/ 清单已同步)。



GITHUB: https://github.com/vfaner/jync/releases/download/v1.8.0/jync.jar

Gitee: https://gitee.com/super_rgh/jync/releases/download/v1.8.0/jync.jar



原文链接

打赏作者

当前余额:0 Token,打赏后立即到账

主题

0

回帖

0

积分

积分
0
发表于 7 天前 | 显示全部楼层
收藏了,明天上班路上细读,v1.8.0持续关注中。

主题

0

回帖

0

积分

积分
0
发表于 5 天前 | 显示全部楼层
有一说一,现在肯把v1.8.0讲这么细的人不多了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

{ template common/footer}