我们基于 Angular 的 web 应用程序与在不同域和上下文路径上运行的企业门户集成。我正在使用基于 Spring Security 的 CSRF 令牌来验证传入的请求。该应用程序在本地运行良好,但是当我将它与门户集成时,所有的 post 调用都失败了 403,因为 Angular 无法读取 XSRF-Token 并将请求标头中的 X-XSRF-Token 设置为 API 调用。经过调查,我发现门户和我们的应用程序的上下文路径不同,因此 spring 将带有路径、过期和域的 XSRF-Token 设置为 Null。当 spring 创建它时,有什么方法可以将 XSRF-Token 设置为特定的 cookie 路径?
注意:我有一个替代解决方案来创建过滤器并从请求标头中读取 cookie,并使用我想要的路径在浏览器上放置一个新的 cookie。我正在寻找配置级别的解决方案。
我正在尝试将自动化测试容器化以在 docker 环境中运行。当构建在自动化代码上运行时,它会创建一个 docker 映像并在 DTR 中更新。我有一个单独的 jenkins 管道,它在 docker 映像中运行自动化命令并将结果上传到工作区中。所有这些设置在非 docker 环境(即本地 mac 终端)中都运行良好,但相同的测试在 docker 环境中失败。我正在尝试找出解决方案,但似乎不起作用。
\n\n在 docker 环境中运行量角器测试时出现以下错误
\n\n# test/cucumber/stepDefinitions/hooks.ts:31\n WebDriverError: 无效会话 id\n (驱动程序信息: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 4.9.125-linuxkit x86_64) 之后
\n\n我从 Circleci/node ( https://hub.docker.com/r/circleci/node/ ) 构建了 docker 映像,并且该映像需要安装库(node、npm、yarn、chrome 和 chrome 驱动程序)。
\n\n在运行测试之前,我确保量角器、黄瓜和 webdriver 模块已安装。
\n\n即便如此,我仍在尝试安装 chrome 和 chrome 驱动程序,同时使用 apt-get 包管理器构建映像。
\n\ndocker env 位于 Debian GNU/Linux 9 \\n \\l\nchrome 驱动程序版本为 \n73.0.3683.75-1~deb9u1\nGoogle Chrome 版本为 73.0.3683.103 \n我正在无头运行
\n\nMaking sure the webdriver manager is updated …Run Code Online (Sandbox Code Playgroud)