0

在尝试解决这个问题时,我们注意到来自 GSSAPI 和 SSPI 客户端实现的 SPNEGO 请求 (KRB_AP_REQ) 之间存在差异:

  • 使用 GSSPI 将 mutalFlag 设置为 False

  • 使用 SSPI,mutualFlag 设置为 True。

在调用 GSSAPI 的 Java 代码中,我们可以根据需要将标志显式设置为 true 或 false,但我发现无法使用 Waffle / SSPI 执行此操作。

在 Github 上的 Waffle 代码中搜索“mutual”只得到了一个结果:对于常量ISC_REQ_MUTUAL_AUTH

有没有办法通过 Waffle / SSPI 显式设置mutualFlag?

即相当于下面的 GSSAPI 代码:

GSSContext context = gssManager.createContext(serverName, mechOid, null, GSSContext.DEFAULT_LIFETIME);
context.requestMutualAuth(false);
4

1 回答 1

1

虽然我不建议禁用相互身份验证。华夫饼抽象太高了。我们有同样的问题:想要修改上下文标志。我们不得不修改源代码并重新编译。向 Waffle 提出问题并提供 PR。

问题代码在这里:https ://github.com/Waffle/waffle/blob/0c6f832222b59537847281adf7d2959583809dff/Source/JNA/waffle-jna/src/main/java/waffle/windows/auth/impl/WindowsSecurityContextImpl.java#L117- L119

于 2020-03-03T12:32:33.657 回答