WireMock 请求查询参数为空

问题描述 投票:0回答:1

我正在尝试配置wiremock,但由于某种原因,

request.query.state
保持为空。如果我将其更改为
{{now}}
,它将插入当前日期,以便模板正常工作。

upStreamIDPMock.stubFor(
    get(urlPathEqualTo("/oauth/authorize")).willReturn(status(302))
        .withServeEventListener(
            "webhook", webhook()
                .withMethod(RequestMethod.GET)
                .withUrl("http://localhost:8082/oidc/callback?code=$code&state={{request.query.state}}")
        )
)
userService.stubFor(get("/callback").willReturn(ok()))

这是我的请求网址:

/oauth/authorizescope=openid+profile+email&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8082%2Foidc%2Fcallback&state=UHq4_t4jedo3-gtO2uPqNGemeWf-au9yceyrKVPLN7Y&nonce=FnioULWSy-Hd4mmlC6o15d_BOg49MJlZzi3on7ts_PQ

这是回复:

http://localhost:8082/oidc/callback?code=QxyTZeVACxRxzcJmRB4xQciCApy2aNQsbyDg5-sIU7w&state= 

java kotlin wiremock
1个回答
0
投票

我调试了一下,发现需要在webhook中使用

originalRequest
,即
.withUrl("http://localhost:8082/oidc/callback?code=$code&state={{originalRequest.query.state}}")

找出参数的实际名称后,我可以在文档中找到参考:

与响应模板类似,原始请求数据可用,尽管在本例中它被命名为

originalRequest

© www.soinside.com 2019 - 2024. All rights reserved.