I try to evaluate WireMock to mock a third-party service.

When trying to record some calls to the third-party service.

  1. I am issuing a call to the actual service e.g.
curl -X GET "http://thrdpary.service.com/api/v2/requests/6396ff4eae78da7b0457f283" \
 -H "authorization: Bearer mytoken" \
 -H "accept: application/json"

I get an expected JSON response

  1. Then spanning wiremock and running the call via the proxy
java -jar ~/tools/wiremock/wiremock-jre8-standalone-2.35.0.jar --print-all-network-traffic \
 --verbose \
 --proxy-all https://thrdpary.service.com
  1. Issuing a call via Wiremock proxy
curl -X GET "http://127.0.0.1:8080/api/v2/requests/6396ff4eae78da7b0457f283" \
 -H "authorization: Bearer mytoken" \
 -H "accept: application/json"
 -H "Content-Type: application/json"

But now I get an HTML response saying "We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue."

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.png"><title>Vade Providers Dashboard</title><link href="/css/chunk-035323b2.7b55ea24.css" rel="prefetch"><link href="/css/chunk-0c985e44.c6590440.css" rel="prefetch"><link href="/css/chunk-0f545a99.1c048926.css" rel="prefetch"><link href="/css/chunk-27ade5d8.d39a8b0b.css" rel="prefetch"><link href="/css/chunk-3aa2de5d.7652751d.css" rel="prefetch"><link href="/css/chunk-53f183f4.cdd3a2dc.css" rel="prefetch"><link href="/css/chunk-544e0368.a5ab1dfb.css" rel="prefetch"><link href="/css/chunk-5a6fde36.e3b2c13a.css" rel="prefetch"><link href="/css/chunk-7de726f3.7d4de787.css" rel="prefetch"><link href="/css/chunk-7f3c0b78.dc211df5.css" rel="prefetch"><link href="/css/chunk-83ce1a9e.f2716e48.css" rel="prefetch"><link href="/css/chunk-8d9970a8.e5638da4.css" rel="prefetch"><link href="/css/chunk-a7c610f8.a3ca4e48.css" rel="prefetch"><link href="/css/chunk-f567c068.c322c04b.css" rel="prefetch"><link href="/css/chunk-f95edb7a.39df20bf.css" rel="prefetch"><link href="/js/chunk-035323b2.fe892de2.js" rel="prefetch"><link href="/js/chunk-0bb2fd9a.63880c1c.js" rel="prefetch"><link href="/js/chunk-0c985e44.226b2fc7.js" rel="prefetch"><link href="/js/chunk-0f545a99.48adf734.js" rel="prefetch"><link href="/js/chunk-2570f1d2.66a8fb23.js" rel="prefetch"><link href="/js/chunk-27ade5d8.217cffc0.js" rel="prefetch"><link href="/js/chunk-2d0be333.daaed458.js" rel="prefetch"><link href="/js/chunk-2d0e97b4.36457cfb.js" rel="prefetch"><link href="/js/chunk-3aa2de5d.bcd8d130.js" rel="prefetch"><link href="/js/chunk-53f183f4.532707bc.js" rel="prefetch"><link href="/js/chunk-544e0368.c447366e.js" rel="prefetch"><link href="/js/chunk-5a6fde36.47c41335.js" rel="prefetch"><link href="/js/chunk-7194670a.a360ec9e.js" rel="prefetch"><link href="/js/chunk-7de726f3.82cb480e.js" rel="prefetch"><link href="/js/chunk-7f3c0b78.06d21415.js" rel="prefetch"><link href="/js/chunk-7facee04.52a8a153.js" rel="prefetch"><link href="/js/chunk-83ce1a9e.da9aae42.js" rel="prefetch"><link href="/js/chunk-8d9970a8.f29483ea.js" rel="prefetch"><link href="/js/chunk-a7c610f8.51d3b72e.js" rel="prefetch"><link href="/js/chunk-f567c068.3e0dacca.js" rel="prefetch"><link href="/js/chunk-f95edb7a.ba5a8579.js" rel="prefetch"><link href="/css/app.8ee4d6fd.css" rel="preload" as="style"><link href="/css/chunk-vendors.0c859e98.css" rel="preload" as="style"><link href="/js/app.6fdc482c.js" rel="preload" as="script"><link href="/js/chunk-vendors.092ff052.js" rel="preload" as="script"><link href="/css/chunk-vendors.0c859e98.css" rel="stylesheet"><link href="/css/app.8ee4d6fd.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="https://kit.fontawesome.com/d788c84bab.js" crossorigin="anonymous"></script><script src="/config.js"></script><script src="/js/chunk-vendors.092ff052.js"></script><script src="/js/app.6fdc482c.js"></script></body></html>

The wiremock log

Response:
HTTP/1.1 200
server: [nginx]
date: [Mon, 12 Dec 2022 13:18:40 GMT]
content-type: [text/html]
content-length: [3191]
last-modified: [Fri, 21 Oct 2022 13:40:12 GMT]
vary: [Accept-Encoding]
etag: ["6352a13c-c77"]
expires: [Mon, 12 Dec 2022 13:18:39 GMT]
cache-control: [no-cache]
accept-ranges: [bytes]

2022-12-12 13:18:40.341 Outgoing bytes: HTTP/1.1 200 OK
Server: nginx
Date: Mon, 12 Dec 2022 13:18:40 GMT
Content-Type: text/html
Last-Modified: Fri, 21 Oct 2022 13:40:12 GMT
Vary: Accept-Encoding
ETag: "6352a13c-c77"
Expires: Mon, 12 Dec 2022 13:18:39 GMT
Cache-Control: no-cache
Accept-Ranges: bytes
Vary: User-Agent
Content-Length: 3191


2022-12-12 13:18:40.341 Outgoing bytes: <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.png"><title>Vade Providers Dashboard</title><link href="/css/chunk-035323b2.7b55ea24.css" rel="prefetch"><link href="/css/chunk-0c985e44.c6590440.css" rel="prefetch"><link href="/css/chunk-0f545a99.1c048926.css" rel="prefetch"><link href="/css/chunk-27ade5d8.d39a8b0b.css" rel="prefetch"><link href="/css/chunk-3aa2de5d.7652751d.css" rel="prefetch"><link href="/css/chunk-53f183f4.cdd3a2dc.css" rel="prefetch"><link href="/css/chunk-544e0368.a5ab1dfb.css" rel="prefetch"><link href="/css/chunk-5a6fde36.e3b2c13a.css" rel="prefetch"><link href="/css/chunk-7de726f3.7d4de787.css" rel="prefetch"><link href="/css/chunk-7f3c0b78.dc211df5.css" rel="prefetch"><link href="/css/chunk-83ce1a9e.f2716e48.css" rel="prefetch"><link href="/css/chunk-8d9970a8.e5638da4.css" rel="prefetch"><link href="/css/chunk-a7c610f8.a3ca4e48.css" rel="prefetch"><link href="/css/chunk-f567c068.c322c04b.css" rel="prefetch"><link href="/css/chunk-f95edb7a.39df20bf.css" rel="prefetch"><link href="/js/chunk-035323b2.fe892de2.js" rel="prefetch"><link href="/js/chunk-0bb2fd9a.63880c1c.js" rel="prefetch"><link href="/js/chunk-0c985e44.226b2fc7.js" rel="prefetch"><link href="/js/chunk-0f545a99.48adf734.js" rel="prefetch"><link href="/js/chunk-2570f1d2.66a8fb23.js" rel="prefetch"><link href="/js/chunk-27ade5d8.217cffc0.js" rel="prefetch"><link href="/js/chunk-2d0be333.daaed458.js" rel="prefetch"><link href="/js/chunk-2d0e97b4.36457cfb.js" rel="prefetch"><link href="/js/chunk-3aa2de5d.bcd8d130.js" rel="prefetch"><link href="/js/chunk-53f183f4.532707bc.js" rel="prefetch"><link href="/js/chunk-544e0368.c447366e.js" rel="prefetch"><link href="/js/chunk-5a6fde36.47c41335.js" rel="prefetch"><link href="/js/chunk-7194670a.a360ec9e.js" rel="prefetch"><link href="/js/chunk-7de726f3.82cb480e.js" rel="prefetch"><link href="/js/chunk-7f3c0b78.06d21415.js" rel="prefetch"><link href="/js/chunk-7facee04.52a8a153.js" rel="prefetch"><link href="/js/chunk-83ce1a9e.da9aae42.js" rel="prefetch"><link href="/js/chunk-8d9970a8.f29483ea.js" rel="prefetch"><link href="/js/chunk-a7c610f8.51d3b72e.js" rel="prefetch"><link href="/js/chunk-f567c068.3e0dacca.js" rel="prefetch"><link href="/js/chunk-f95edb7a.ba5a8579.js" rel="prefetch"><link href="/css/app.8ee4d6fd.css" rel="preload" as="style"><link href="/css/chunk-vendors.0c859e98.css" rel="preload" as="style"><link href="/js/app.6fdc482c.js" rel="preload" as="script"><link href="/js/chunk-vendors.092ff052.js" rel="preload" as="script"><link href="/css/chunk-vendors.0c859e98.css" rel="stylesheet"><link href="/css/app.8ee4d6fd.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="https://kit.fontawesome.com/d788c84bab.js" crossorigin="anonymous"></script><script src="/config.js"></script><script src="/js/chunk-vendors.092ff052.js"></script><script src="/js/app.6fdc482c.js"></script></body></html>
2022-12-12 13:18:40.349 Closed Socket[unconnected]

Any ideas on how to solve this?

1

There are 1 best solutions below

0
On

My problem was misconfiguration (thank you @Ourbotus for giving me the solution).

The messages

"We're sorry but isp-portal doesn't work properly without JavaScript enabled. Please enable it to continue."

This is due to the fact I was proxying the portal which is a human-readable front-end and not the API.

I needed to point to api.thridparty.service.com and not to thrdipary.service.com.

The correct command in my case to run Wiremock as standalone with proxy should be

java -jar ~/tools/wiremock/wiremock-jre8-standalone-2.35.0.jar --print-all-network-traffic \
 --verbose \
 --proxy-all https://api.thrdpary.service.com

BTW on your local machine, you can use HTTP to proxy a remote HTTPS and it works.