当前位置: 首页 > 知识库问答 >
问题:

应用程序未对jmeter脚本的虚拟用户进行身份验证,并在打印“anonymousUser”的日志中进行身份验证

臧彭亮
2023-03-14

我在badboy中录制了我的脚本,并在JMeter中进行了转换。我的脚本如下:在此处输入图像描述

当为1个用户运行此脚本时,应用程序未授权用户并在日志中抛出以下异常:

DEBUG:access.intercept.FilterSecurityInterceptor-先前已认证:org.springframework.security.authentication.匿名身份验证令牌@:主体:匿名用户;凭据:[保护];身份验证:真;详细信息:org.springframework.security.web.authentication.WebAuthenticationDetails@0:远程IP地址:;SessionId:;授予权限:ROLE_ANONYMOUSDEBUG:access.vote.肯定基于-投票人:org.springframework.security.access.vote.RoleVoter@514020c0,返回:-1 DEBUG:access.vote.肯定基于-投票人:org.springframework.security.access.vote.AuthenticatedVoter@502dc360,返回:0 DEBUG:web.access.异常TranslationFilter-访问被拒绝(用户是匿名的);重定向到身份验证切入点org.springframework.security.access.AccessDeniedException:访问被拒绝

当我访问web应用程序并使用同一用户登录时,它会授权同一用户,并在日志中打印以下跟踪:

调试:访问。拦截FilterSecurityInterceptor-之前已通过身份验证:org。springframework。安全认证。UsernamePasswordAuthenticationToken@:Principal:com。A.B.C.D。User@6d513c13; 凭证:[受保护];认证:正确;详情:com。A.B.C.D.E。UserAuthenticationDetails@0:RemoteIP地址:;SessionId:;授权权限:学习者调试:访问。选票基于确认的——投票人:org。springframework。安全通道选票RoleVoter@514020c0,返回:1调试:访问。拦截FilterSecurity Interceptor-授权成功调试:访问。拦截FilterSecurity Interceptor-RunAsManager未更改身份验证对象

但在JMeter中,我的测试并没有被标记为失败,所有的采样器都成功了,返回了200。

谁能帮帮我吗!谢谢

共有1个答案

洪和风
2023-03-14

录制和重播并不是在100%的时间内都能正常工作的,很可能您必须手动“调整”脚本以执行关联和参数化。

  • 相关性:处理动态参数的过程(Web应用程序开发人员使用它们来跟踪用户状态或防止CSRF攻击),检测它们非常容易:只需记录2次测试并比较记录的请求。需要关联不同的值,即您需要使用正则表达式提取器从之前的响应中提取它们,并在下一个请求中使用生成的JMeter变量而不是硬编码的值
  • 参数化:您不会使用1个虚拟用户运行负载测试,是吗?您应该使用尽可能多的用户名/密码组合来模拟您的目标用户。通常人们使用CSV Data Set Config来保存此类数据。同样,您需要将记录的值替换为CSV文件中的变量

完成后,使用1-2个虚拟用户/迭代运行测试,并仔细检查查看结果树侦听器中的请求和响应详细信息,以确保测试工作正常。

关于JMeter中的,我的测试没有标记为失败,JMeter将状态代码低于400的HTTP响应视为成功,因此,即使有数百个以粗体和红色显示的异常,但HTTP状态代码为200,JMeter也会将结果标记为“绿色”。您可以使用响应断言来向JMeter测试添加一些失败标准,例如,对于登录的用户文本,如Welcome,${username}是预期的,等等。

 类似资料:
  • 我在badboy中录制了我的脚本,并在JMeter中进行了转换。我的脚本类似:在此处输入图像描述 为1个用户运行此脚本时,应用程序未对该用户进行授权,并在日志中引发以下异常: debug:access.intercept.filtersecurityinterceptor-以前已通过身份验证的:org.springframework.security.authentication.anonymou

  • 我正在尝试使用urllib3连接到网页。代码如下所示。 如果我们假设url是需要使用用户名和密码进行身份验证的某个网页,那么我是否使用正确的代码进行身份验证? 我使用urllib2做这件事很舒服,但使用urllib3做不到同样的事情。 非常感谢

  • jwt不应该仅仅用于认证用户吗?我读到过可以在里面存储非敏感的东西,比如用户ID。将权限级别之类的东西存储在令牌中可以吗?这样我可以避免数据库调用。

  • 我一直试图用restTemplate传递基本身份验证,但它甚至没有将身份验证头传递给服务器。下面是我使用的bean定义` `

  • 问题内容: 我目前正在尝试使用HTTP和HTTPS访问URL。我尝试访问的URL需要基本身份验证。使用HTTP可以正常工作,但是使用HTTPS则不能。我不确定是否需要使用HTTPS添加其他内容。该URL应该返回给我的文本是键值格式,可以加载到对象中。 这是到目前为止我尝试过的代码。 这是证书类别 当我删除所有证书代码(以及证书代码)时的错误消息: 问题答案: 问题似乎是由于在更改连接的和实例之前打

  • 我是Spring安全的新手,我想用数据库验证用户。我已经用jdbc创建了一个登录页面和一个身份验证提供程序,它检查用户是否存在于数据库中。但是我的代码没有这样做的问题是,它允许所有用户登录!我的代码怎么了?谢谢你的帮助。 这是我的安全会议。xml: