# 매퍼가 서명 대상에 넣는 값과, 요청에 싣는 헤더 103: String host = properties.endpoint().getHost(); 110: Map.of("host", host, "content-type", "application/json"), Map.of( "content-type", "application/json", "x-amz-date", signed.amzDate(), "x-amz-content-sha256", signed.contentSha256(), "authorization", signed.authorization())), # 게이트웨이가 host 를 거르는 자리 (공급되었을 때를 지킨다) 27: Set.of("connection", "content-length", "expect", "host", "upgrade"); 54: if (!RESTRICTED.contains(name)) { # 엔드포인트 가드가 포트를 보는가 (일치 0) 27: NotificationEndpoints.requireExternallyRoutable(endpoint, "SES endpoint", true); # 비기본 포트 URI 를 실제 매퍼에 먹이는 자리 test · ProviderFaultHarness.java:52: return URI.create("http://127.0.0.1:" + server.getAddress().getPort()); test · SesNotificationProviderAdapterTest.java:254: harness.baseUri(), test · WebPushProviderAdapterTest.java:173: URI.create(harness.baseUri() + "/push/subscription-1"), test · ContractAdapters.java:102: harness.baseUri(), test · ContractAdapters.java:139: harness.baseUri(), test · ContractAdapters.java:169: harness.baseUri(), test · ContractAdapters.java:234: "sub-1", harness.baseUri().resolve("/hook"), true, Optional.of("cb-1")); test · ContractAdapters.java:264: URI.create(harness.baseUri() + "/push/subscription-1"), # 같은 모양의 다른 서명기 50: String audience = endpoint.getScheme() + "://" + endpoint.getHost(); # 저장소가 이미 쓰는 수정식과 그 이유 *

Several providers sign the request URL, so getting this wrong turns every valid webhook into a * signature failure. Forwarded headers are only honoured when the immediate peer is a configured boolean defaultPort = port < 0 || ("https".equalsIgnoreCase(scheme) && port == 443) || ("http".equalsIgnoreCase(scheme) && port == 80); if (!defaultPort) { url.append(':').append(port); } — 같은 판정을 하는 자리 전부 (규칙으로 검색) main · ExternalOrigin.java:43: (scheme.equals("https") && port == 443) || (scheme.equals("http") && port == 80); main · ExternalRequestContext.java:57: (scheme.equals("https") && port == 443) || (scheme.equals("http") && port == 80); main · ExternalRequestUrlResolver.java:59: || ("https".equalsIgnoreCase(scheme) && port == 443) main · ExternalRequestUrlResolver.java:60: || ("http".equalsIgnoreCase(scheme) && port == 80); main · CanonicalTarget.java:39: return ("https".equals(scheme) && port == 443) || ("http".equals(scheme) && port == 80);