在尝试解决这个问题时,我们注意到来自 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);