Flight SQL JDBC parses boolean properties case-sensitively, silently disabling TLS for useEncryption=TRUE
维护者通常 1 天内回复
评估
调研方向
找到 ArrowFlightConnectionConfigImpl.ArrowFlightConnectionProperty.getBoolean,检查它如何读取属性值。查看现有的 JDBC 连接属性测试,然后为 true、TRUE、True 和 1 添加覆盖。当这些值都能启用加密且相关测试通过时,任务即告完成。
由索引模型根据 Issue 内容生成。
描述
In the Flight SQL JDBC driver, ArrowFlightConnectionConfigImpl.ArrowFlightConnectionProperty.getBoolean compares the property value with:
return valueFromProperties.equals("1") || valueFromProperties.equals("true");
Only the exact lowercase true (or 1) is treated as true. Values coming from the JDBC URL or Properties are not normalized, so a perfectly reasonable value such as useEncryption=TRUE or useEncryption=True is parsed as false.
useEncryption defaults to true and feeds ArrowFlightSqlClientHandler.Builder.withEncryption(...). When it is parsed as false, the driver connects to the server over plaintext gRPC and performs the authentication handshake (username/password, bearer token, or OAuth credentials) over the unencrypted channel. A user who believes they enabled TLS gets a cleartext connection and credential exposure instead.
Most JDBC drivers parse boolean options case-insensitively, so this is surprising and security-relevant. getBoolean should accept true case-insensitively (still honoring 1).
- 主要语言
- Java
- 星标
- 98
- 派生
- 160
- 平均合并
- 5 天 6 小时
- 30 天内合并 PR
- 27
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/arrow-java 的其他 Issue
-
ArrowBuf.setBytes(long, ByteBuffer, int, int) does not bounds-check the source buffer可能已有人在做 @aryan9948 于 6 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
apache/arrow-java#1336 · 1 条评论 ·
维护者通常 1 天内回复
-
ArrowFlightJdbcArray.getArray(index, count) can read past the end of the array slice可能已有人在做 @Arawoof06 于 86 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
apache/arrow-java#1236 ·
维护者通常 1 天内回复
-
[Java][JDBC] ClobConsumer writes past VarCharVector data buffer for large CLOBs可能已有人在做 @Arawoof06 于 91 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
apache/arrow-java#1230 ·
维护者通常 1 天内回复
-
[Java] DictionaryEncoder doesn't crash when decoding index outside of Dictionary可能已有人在做 @jakobhok-neo4j 于 148 天前认领。 未关闭Type: bug
难度 2/5 1-3 小时 新手友好度 74/100
apache/arrow-java#1158 ·
维护者通常 1 天内回复
-
Type: enhancement
难度 2/5 1-3 小时 新手友好度 76/100
apache/arrow-java#1100 ·
维护者通常 1 天内回复
查看 apache/arrow-java 的全部 Issue
相似的 Issue
-
`timer` rule rejects dates the engine accepts可能已有人在做 @MFA-G 今天认领。 未关闭bug ready
难度 2/5 1-3 小时 新手友好度 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 条评论 ·
维护者通常 1 天内回复
-
status: waiting-for-triage
难度 2/5 1-3 小时 新手友好度 72/100
-
bug
难度 2/5 1-3 小时 新手友好度 62/100
-
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
AOT compilation fails for derived delete queries returning Set可能已有人在做 @ryujungkyun 今天认领。 未关闭status: waiting-for-triage
难度 2/5 1-3 小时 新手友好度 72/100
spring-projects/spring-data-jpa#4387 ·
维护者通常 3 天内回复