@Override @Nullable public Part getPart(String name) throws IOException, ServletException { return this.parts.getFirst(name); }
/** * Return the first header value for the given header name, if any. * @param headerName the header name * @return the first header value, or {@code null} if none */ @Override @Nullable public String getFirst(String headerName) { return this.headers.getFirst(headerName); }
@Override @Nullable public String getParameter(String name) { String queryStringValue = super.getParameter(name); String formValue = this.formParameters.getFirst(name); return (queryStringValue != null ? queryStringValue : formValue); }
@Override @Nullable public String getParameter(String name) { String queryStringValue = super.getParameter(name); String formValue = this.formParams.getFirst(name); return (queryStringValue != null ? queryStringValue : formValue); }
@Override protected boolean matchValue(ServerWebExchange exchange) { return (this.value != null && this.value.equals(exchange.getRequest().getQueryParams().getFirst(this.name))); } }
@Override @Nullable public Part getPart(String name) throws IOException, ServletException { return this.parts.getFirst(name); }
@Nullable protected final String getCallbackParam(ServerHttpRequest request) { String query = request.getURI().getQuery(); MultiValueMap<String, String> params = UriComponentsBuilder.newInstance().query(query).build().getQueryParams(); String value = params.getFirst("c"); if (StringUtils.isEmpty(value)) { return null; } String result = UriUtils.decode(value, StandardCharsets.UTF_8); return (CALLBACK_PARAM_PATTERN.matcher(result).matches() ? result : null); }
@Override protected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange) { HttpCookie cookie = exchange.getRequest().getCookies().getFirst(name); Class<?> paramType = parameter.getNestedParameterType(); if (HttpCookie.class.isAssignableFrom(paramType)) { return cookie; } return (cookie != null ? cookie.getValue() : null); }
@Test public void addShouldKeepOrdering() { this.headers.add("TestHeader", "first"); this.headers.add("TestHeader", "second"); assertEquals("first", this.headers.getFirst("TestHeader")); assertEquals("first", this.headers.get("TestHeader").get(0)); }
@RequestMapping("/hotels/{hotel}/bookings/{booking}-{other}") public void handle(@PathVariable("hotel") String hotel, @PathVariable int booking, @PathVariable String other, @MatrixVariable MultiValueMap<String, String> params) { assertEquals("Invalid path variable value", "42", hotel); assertEquals("Invalid path variable value", 21, booking); assertEquals(Arrays.asList("1", "2", "3"), params.get("q")); assertEquals("R", params.getFirst("r")); }
@Test public void putShouldOverrideExisting() { this.headers.add("TestHeader", "first"); this.headers.put("TestHeader", Arrays.asList("override")); assertEquals("override", this.headers.getFirst("TestHeader")); assertEquals(1, this.headers.get("TestHeader").size()); }
@Test public void addTargetRequestParamsNullValue() { MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); params.add("key", "abc"); params.add("key", " "); params.add("key", null); FlashMap flashMap = new FlashMap(); flashMap.addTargetRequestParams(params); assertEquals(1, flashMap.getTargetRequestParams().size()); assertEquals(1, flashMap.getTargetRequestParams().get("key").size()); assertEquals("abc", flashMap.getTargetRequestParams().getFirst("key")); }
@Test public void cookie() { ClientRequest result = ClientRequest.create(GET, URI.create("http://example.com")) .cookie("foo", "bar").build(); assertEquals("bar", result.cookies().getFirst("foo")); }
@Test // SPR-9832 public void fromUriStringQueryParamWithReservedCharInValue() { String uri = "http://www.google.com/ig/calculator?q=1USD=?EUR"; UriComponents result = UriComponentsBuilder.fromUriString(uri).build(); assertEquals("q=1USD=?EUR", result.getQuery()); assertEquals("1USD=?EUR", result.getQueryParams().getFirst("q")); }
private Mono<Void> assertGetFormParts(ServerWebExchange exchange) { return exchange .getMultipartData() .doOnNext(parts -> { assertEquals(2, parts.size()); assertTrue(parts.containsKey("fooPart")); assertFooPart(parts.getFirst("fooPart")); assertTrue(parts.containsKey("barPart")); assertBarPart(parts.getFirst("barPart")); }) .then(); }
@Test public void requestHeaderAndCookie() { this.builder.build().get().uri("/path").accept(MediaType.APPLICATION_JSON) .cookies(cookies -> cookies.add("id", "123")) // SPR-16178 .exchange(); ClientRequest request = verifyAndGetRequest(); assertEquals("application/json", request.headers().getFirst("Accept")); assertEquals("123", request.cookies().getFirst("id")); verifyNoMoreInteractions(this.exchangeFunction); }
@Test public void defaultHeaderAndCookie() { WebClient client = this.builder .defaultHeader("Accept", "application/json").defaultCookie("id", "123") .build(); client.get().uri("/path").exchange(); ClientRequest request = verifyAndGetRequest(); assertEquals("application/json", request.headers().getFirst("Accept")); assertEquals("123", request.cookies().getFirst("id")); verifyNoMoreInteractions(this.exchangeFunction); }
@Test public void addTargetRequestParamNullValue() { FlashMap flashMap = new FlashMap(); flashMap.addTargetRequestParam("text", "abc"); flashMap.addTargetRequestParam("empty", " "); flashMap.addTargetRequestParam("null", null); assertEquals(1, flashMap.getTargetRequestParams().size()); assertEquals("abc", flashMap.getTargetRequestParams().getFirst("text")); }
@Test public void defaultHeaderAndCookieOverrides() { WebClient client = this.builder .defaultHeader("Accept", "application/json") .defaultCookie("id", "123") .build(); client.get().uri("/path").header("Accept", "application/xml").cookie("id", "456").exchange(); ClientRequest request = verifyAndGetRequest(); assertEquals("application/xml", request.headers().getFirst("Accept")); assertEquals("456", request.cookies().getFirst("id")); verifyNoMoreInteractions(this.exchangeFunction); }
@Test public void setSessionId() { MockServerHttpRequest request = MockServerHttpRequest.get("https://example.org/path").build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); this.resolver.setSessionId(exchange, "123"); MultiValueMap<String, ResponseCookie> cookies = exchange.getResponse().getCookies(); assertEquals(1, cookies.size()); ResponseCookie cookie = cookies.getFirst(this.resolver.getCookieName()); assertNotNull(cookie); assertEquals("SESSION=123; Path=/; Secure; HttpOnly; SameSite=Lax", cookie.toString()); }