在Linux上运行时,我使用一个java selenium程序通过Google测试一个网站。
此站点需要Kerberos身份验证。
我需要ChromeDriver来创建具有有效键标签+等的chrome实例。
KEYTAB_FILE_PATH="/home/me/my.keytab"
KERBEROS_PRINCIPAL_NAME="HTTP/myuser@MY.DOMAIN.COM"
kinit -kt "${KEYTAB_FILE_PATH}" "${KERBEROS_PRINCIPAL_NAME}"
echo "Kerberos kinit login was successful!"
java -jar myapp.jarchrome web驱动程序创建一个似乎没有有效kerberos票证的chrome。
有什么方法可以确保我的ksession传递给chromedriver分叉的铬进程吗?我在这里错过了什么?
发布于 2020-11-09 15:44:35
我上面提供的信息是正确的方法来处理Selenium测试,以支持协商身份验证。
在kinit运行后,
--auth-server-whitelist和--auto-negotiate-delegate-whitelist设置正确,以允许您的kerberos票务提供商参与auth握手。(例如,活动目录服务器).这将导致所有铬进程也具有相同的性质,并将能够进行协商认证。
但是,在无头模式下运行时,有一个错误会影响到许多版本的铬。https://bugs.chromium.org/p/chromium/issues/detail?id=924746
因此,如果你恢复到铬70.x,它将工作。虽然我还没有证实,看起来这是固定在一个未来版本的铬。因此,如果你移动到最新版本的铬,这也应该解决问题。
https://stackoverflow.com/questions/59993672
复制相似问题