Merge branch '3.1.x'

This commit is contained in:
Moritz Halbritter 2023-11-30 11:00:56 +01:00
commit 169070ea1b
3 changed files with 15 additions and 22 deletions

View File

@ -16,7 +16,7 @@
package smoketest.jetty.service; package smoketest.jetty.service;
import smoketest.jetty.util.RandomStringUtil; import smoketest.jetty.util.StringUtil;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -28,16 +28,12 @@ public class HttpHeaderService {
private int maxHttpResponseHeaderSize; private int maxHttpResponseHeaderSize;
/** /**
* Generates random data. The data is: * Generates a header value, which is longer than
* <ol> * 'server.jetty.max-http-response-header-size'.
* <li>is longer than configured * @return the header value
* <code>server.jetty.max-http-response-header-size</code></li>
* <li>is url encoded by base 64 encode the random value</li>
* </ol>
* @return a base64 encoded string of random bytes
*/ */
public String getHeaderValue() { public String getHeaderValue() {
return RandomStringUtil.getRandomBase64EncodedString(this.maxHttpResponseHeaderSize + 1); return StringUtil.repeat('A', this.maxHttpResponseHeaderSize + 1);
} }
} }

View File

@ -16,18 +16,17 @@
package smoketest.jetty.util; package smoketest.jetty.util;
import java.util.Base64; import java.util.Arrays;
import java.util.Random;
public final class RandomStringUtil { public final class StringUtil {
private RandomStringUtil() { private StringUtil() {
} }
public static String getRandomBase64EncodedString(int length) { public static String repeat(char c, int length) {
byte[] responseHeader = new byte[length]; char[] chars = new char[length];
new Random().nextBytes(responseHeader); Arrays.fill(chars, c);
return Base64.getEncoder().encodeToString(responseHeader); return new String(chars);
} }
} }

View File

@ -17,14 +17,12 @@
package smoketest.jetty; package smoketest.jetty;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import smoketest.jetty.util.StringUtil;
import smoketest.jetty.util.RandomStringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.system.OutputCaptureExtension;
import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -41,9 +39,9 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Florian Storz * @author Florian Storz
* @author Michael Weidmann * @author Michael Weidmann
* @author Moritz Halbritter
*/ */
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "logging.level.org.eclipse:trace") @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "logging.level.org.eclipse:trace")
@ExtendWith(OutputCaptureExtension.class)
class SampleJettyApplicationTests { class SampleJettyApplicationTests {
@Autowired @Autowired
@ -77,7 +75,7 @@ class SampleJettyApplicationTests {
@Test @Test
void testMaxHttpRequestHeaderSize() { void testMaxHttpRequestHeaderSize() {
String headerValue = RandomStringUtil.getRandomBase64EncodedString(this.maxHttpRequestHeaderSize + 1); String headerValue = StringUtil.repeat('A', this.maxHttpRequestHeaderSize + 1);
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.add("x-max-request-header", headerValue); headers.add("x-max-request-header", headerValue);
HttpEntity<?> httpEntity = new HttpEntity<>(headers); HttpEntity<?> httpEntity = new HttpEntity<>(headers);