卡片消息回调代码有问题,设置了密码和token之后配置不了,同样的密码和token,事件回调可以通过验证,卡片订阅不能通过验证,事件回调的地址放到卡片订阅也可以通过。
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- java
- 领域
- api, authentication
调研方向
从 issue 中显示的两个 verifySign(EventReq eventReq) 方法开始,比较它们对 verificationToken、encryptKey 和 calculateSignature 的使用方式。针对事件回调和卡订阅,使用相同的密钥和令牌复现验证;完成标准是两种回调类型都能在配置匹配的情况下稳定通过签名验证。
由索引模型根据 Issue 内容生成。
描述
如题。我们在使用事件回调和卡片消息回调时同样的key和token,一个能通过校验,一个不能。通过排查,发现两个方法SDK的签名验证逻辑的代码不一样,一个用的是key,一个用的token
` private boolean verifySign(EventReq eventReq) throws NoSuchAlgorithmException {
if (Strings.isEmpty(verificationToken)) {
return true;
}
String cipherEventJsonStr = new String(eventReq.getBody(), StandardCharsets.UTF_8);
String timestamp, nonce, sourceSign, targetSign;
timestamp = eventReq.getHeaderFirstValue(Constants.X_LARK_REQUEST_TIMESTAMP);
nonce = eventReq.getHeaderFirstValue(Constants.X_LARK_REQUEST_NONCE);
sourceSign = eventReq.getHeaderFirstValue(Constants.X_LARK_SIGNATURE);
targetSign = calculateSignature(timestamp, nonce, verificationToken, cipherEventJsonStr);
return targetSign.equals(sourceSign);
}`
`private boolean verifySign(EventReq eventReq) throws NoSuchAlgorithmException {
if (Strings.isEmpty(encryptKey)) {
return true;
}
String cipherEventJsonStr = new String(eventReq.getBody(), StandardCharsets.UTF_8);
String timestamp, nonce, sourceSign, targetSign;
timestamp = eventReq.getHeaderFirstValue(Constants.X_LARK_REQUEST_TIMESTAMP);
nonce = eventReq.getHeaderFirstValue(Constants.X_LARK_REQUEST_NONCE);
sourceSign = eventReq.getHeaderFirstValue(Constants.X_LARK_SIGNATURE);
targetSign = calculateSignature(timestamp, nonce, encryptKey, cipherEventJsonStr);
return targetSign.equals(sourceSign);
}`
使用key的可以通过校验,使用token的不能通过。我理解两个事件应该是一样的处理鉴权的逻辑,有人能帮忙看看吗?
- 主要语言
- Java
- 星标
- 310
- 派生
- 115
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
larksuite/oapi-sdk-java 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
larksuite/oapi-sdk-java#196 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
larksuite/oapi-sdk-java#191 ·
-
难度 1/5 1 小时以内 新手友好度 82/100
larksuite/oapi-sdk-java#149 ·
-
接口响应类型错误 未关闭
难度 2/5 1-3 小时 新手友好度 62/100
larksuite/oapi-sdk-java#79 ·
-
难度 5/5 一周以上 新手友好度 25/100
larksuite/oapi-sdk-java#195 ·
查看 larksuite/oapi-sdk-java 的全部 Issue
相似的 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 65/100
inu-appcenter/memorIN-backend#288 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
-
frontend maui-pilot pilot-ask question
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
area/plugin
难度 2/5 1-3 小时 新手友好度 75/100
kestra-io/plugin-kestra#190 ·