【问题标题】:When does "extractWebSession" method execute in ZAP session management script“extractWebSession”方法何时在 ZAP 会话管理脚本中执行
【发布时间】:2020-07-14 19:35:29
【问题描述】:

我正在玩果汁店的 ZAP 会话管理脚本和 selenium 脚本。我不清楚下面的方法在什么时候被执行!

function extractWebSession(sessionWrapper) {
   // parse the authentication response
   var json = JSON.parse(sessionWrapper.getHttpMessage().getResponseBody().toString());
   var token = json.authentication.token;
   // save the authentication token
   sessionWrapper.getSession().setValue("token", token);
}

最初,我没有将令牌作为全局变量存储在 extractWebSession 中。稍后我添加了 selenium 脚本以在会话存储中注入令牌,并在 extractWebSession 方法中添加了行以将令牌存储为 GlobalVar。当我从 ZAP 打开浏览器时,由于 extractWebSession 没有再次执行,selenium 脚本无法在会话存储中设置令牌。

我从 ZAP 调用浏览器并手动登录以查看此方法是否被执行,但没有运气。 我认为每次调用标记为身份验证登录请求的 api 时都应该执行此方法(https://.../rest/user/login)!这个方法会在每个 zap 会话中只调用一次吗?

当 extractWebSession 方法被 ZAP 调用时,谁能告诉我?

【问题讨论】:

    标签: zap


    【解决方案1】:

    默认情况下,ZAP 自动身份验证仅在您以特定用户身份运行蜘蛛或主动扫描等工具时才会发生。但是,如果您使用强制用户模式,则可以强制使用它。

    我在https://www.alldaydevops.com/zap-in-ten上的 ADDO Workshop 视频中详细介绍了 Juice Sjop 的身份验证

    【讨论】:

    • 嗨,西蒙,我看到了 ADDO 研讨会视频。对不起!我没有得到“但是,如果您使用强制用户模式,您可以强制使用它”。我编辑了“extractWebSession”以将令牌存储在 globalVar 中 - 它由 selenium 脚本中的 launchbrowser 方法使用,并且我已强制用户模式打开。当我从 ZAP 打开果汁商店时,我没有登录。这是因为没有重新执行“extractWebSession”并且没有设置 globalVar。如果我有代码在第一时间将令牌存储在“extractWebSession”中的 GlobalVar 中,那么一切都按预期工作!
    猜你喜欢
    • 2018-09-10
    • 2014-12-11
    • 1970-01-01
    • 2018-10-15
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多