为开发者而生的技术社区

让技术生根,让灵感生长。

从 Java 与 Spring,到 AI 与开源。分享经得起实践的知识,和认真做技术的人一起成长。

↗ SHARE. BUILD. GROW.
⌘探索技术专题找到你的下一站Agent22 篇文章 ↗Java562 篇文章 ↗Spring580 篇文章 ↗架构运维322 篇文章 ↗面试与职场68 篇文章 ↗

最新文章

持续更新的技术实践

Spring Boot 4.1 用 InetAddressFilter 防 SSRF,RestClient 异常类型随底层客户端而变

用 Spring Boot 4.1.1 的 InetAddressFilter.externalAddresses() 实测 JDK、Apache、Jetty、Reactor Netty 四种底层客户端:回环、元数据、内网和十进制地址全部被拦,公网 IP 正常放行;RestClient 抛出的异常却分成裸 FilteredHostException 和 ResourceAccessException 两种,fake-ip DNS 下所有域名也会一并被拦。

开源社交调度工具 Postiz,Stripe 验证从月入 1.4 万做到近 29 万美元

开源社交媒体调度工具 Postiz 由 Nevo David 从 2024 年 9 月做起,代码 AGPL 开源,钱来自托管订阅。TrustMRR 用 Stripe 校验的看板显示,2026 年 10 月 20 日 MRR 约 29.2 万美元、活跃订阅 8537 个。按创始人公开帖和定价页,复盘从每月 1.4 万美元走到近 29 万美元的路径和四档价格。

Oracle 10 月 CPU 修了 MySQL 9.8,Docker Hub 8.4 已到 8.4.13

Oracle 2026 年 10 月 CPU 已正式发布,MySQL 共 98 个新补丁,29 个可无认证远程利用,OpenSSL 与 curl 两条同为 CVSS 9.8。10-21 核对时 mysql:8.4 还停在 8.4.11;10-22 22:16 北京时间再查,浮动标签已指向 8.4.13 与 9.7.4。Spring Boot 4.1.1 默认的 Connector/J 9.7.0 不在 Connector/J 受影响名单里。

OpenCode 2.1 恢复会话归档:session.list 默认仍含 archived,要参数才分开

OpenCode 2.1.0(2026-10-20)把会话归档加回来了。本机装 @opencode/cli 2.1.1 后,对已有会话 session.update 设 archived=true,session.list 只有带 archived=true/false 才会分开;不带参数的默认列表仍会带上已归档会话。同项目里 experimental.todo 也能被 debug config 读到。

HeyGen Voice Turbo 文本转语音免费到 11 月 30 日,模型名少写 -free 就照常计费

HeyGen 在 10 月 21 日更新的博客里说,Voice Turbo 在 API 里免费到 2026 年 11 月 30 日,不用绑卡。免费的是单独的 heygen-voice-1-turbo-free,写成 heygen-voice-1-turbo 或用默认模型照常计费;共享容量满了回 429,不会自动转付费。附 Spring Boot 4.1 RestClient 接法和真实请求的 401 返回。

Google ADK Java 1.13 的工作流图并行分支不切线程,节点里一阻塞就变成串行

Google ADK Java 1.13.0 的 Workflow 能从起点跑完整张图,并行、汇合、按路由分流都能走通,两个终点都产出结果时抛 WorkflowConfigurationException。实测两条并行分支的 runNode 都在 main 线程上被调起,节点返回异步结果时总耗时 306ms,节点里阻塞 sleep 时变成 609ms。ADK 工具转 MCP 的 inputSchema 在 1.12.0 报 6 个元模式错误,1.13.0 为 0;开发服务器默认拒绝跨域请求。

Java 智能体框架 ADK 1.13.0 防 DNS 重绑定,不绑回环仍放行伪造 Host

Google ADK Java 1.13.0 的 dev 服务器默认只放同源,并新增 DNS rebinding 防护。对照 1.12.0:跨域请求从 200 加 ACAO * 变成 403。dev README 写明 AdkWebServer.start() 不设 server.address,此时 Host 检查不开启,只伪造 Host、不带 Origin 的 GET 仍回 200,设 server.address=127.0.0.1 后被拦。