SSO和cookie的JMeter问题

SSO和cookie的JMeter问题,jmeter,Jmeter,使用JMeter 3.1 r1770033,我在通过单一登录存储特定于公司的cookie时遇到两个问题。(SSO) 我在这个网站上读过很多关于cookie的博客文章和问题,但没有一篇文章能够回答我的具体问题“hc3cookeyhandler:不存储无效cookie:” 我相信这是由于公司希望cookie格式化的实现 Cookie:companyAuthorizedEnvironment=assignedTokenId 我可以使用curl成功地使用命令行界面,但不能通过JMeter curl -

使用JMeter 3.1 r1770033,我在通过单一登录存储特定于公司的cookie时遇到两个问题。(SSO)

我在这个网站上读过很多关于cookie的博客文章和问题,但没有一篇文章能够回答我的具体问题“hc3cookeyhandler:不存储无效cookie:

我相信这是由于公司希望cookie格式化的实现

Cookie:companyAuthorizedEnvironment=assignedTokenId

我可以使用curl成功地使用命令行界面,但不能通过JMeter

 curl --request POST --header "X-OpenAM-Username:username" --header "X-OpenAM-Password:password” --header "Content-Type:application/json" --data "{}" https://sso.company.com/access/authenticate/

Response

{"tokenId": "AQIC5w_TEXT_REMOVED_NTcy*", "successUrl": "/openam/console" }
下面是我的简单登录/注销测试的概要,包括解释和由此产生的两个问题的摘要

非常感谢您的帮助



测试计划

HTTP缓存管理器

Clear cache each iteration? = enabled
Use Cache-Control = disabled
Max # of elements = 5000
HTTP Cookie管理器

我尝试了所有可能的实施/政策组合,但没有成功

设置线程组=SSO身份验证

此过程允许远程客户端使用有效凭据向SSO进行身份验证。身份验证成功后,将向用户提供身份验证令牌,然后使用该令牌访问受保护的应用程序

拆卸线程组=SSO注销

Response code: 401
Response message: Unauthorized
“此过程允许远程客户端通过注销系统来终止与SSO的活动会话”



第1期-登录

我在跟踪日志中看到以下警告

WARN  - jmeter.protocol.http.control.HC3CookieHandler: Not storing invalid cookie: <amlbcookie=01; Domain=sso.stage.company.com.; Path=/> for URL https://sso.stage.company.com/access/authenticate/ (Illegal domain attribute "sso.stage.company.com.". Domain of origin: "sso.stage.company.com") 

我怀疑这是未经授权的,因为未存储“Cookie:companyauthstage=${tokenId}”头,但我不能100%确定。

您已经获得了所需的描述:

Illegal domain attribute "sso.stage.company.com.". Domain of origin: "sso.stage.company.com"
它是“非法”的,因为它的末尾有一个点,因此它与它来自的域不匹配。这属于安全范围,因此所有客户端软件都应该非常认真地对待它,cookie管理器也是如此


因此,你最好给你的开发人员一个提示——这是一个bug。

如果你完全确定cookie是好的,你可以通过在user.properties文件中添加下一行来强制JMeter禁用cookie检查并按原样存储它们(通常位于JMeter安装的“bin”文件夹下)

需要重新启动JMeter才能获取属性

通过-J命令行参数传递属性,可以实现同样的效果,如下所示:

jmeter -JCookieManager.check.cookies=false -n -t ....
参考资料:

Response code: 401
Response message: Unauthorized
Illegal domain attribute "sso.stage.company.com.". Domain of origin: "sso.stage.company.com"
CookieManager.check.cookies=false
jmeter -JCookieManager.check.cookies=false -n -t ....