2
0
Steve Riesenberg 3 жил өмнө
parent
commit
946e24e1c2

+ 8 - 5
web/src/main/java/org/springframework/security/web/server/ServerHttpBasicAuthenticationConverter.java

@@ -74,11 +74,14 @@ public class ServerHttpBasicAuthenticationConverter implements Function<ServerWe
 		}
 	}
 
-	public Charset getCredentialsCharset() {
-		return this.credentialsCharset;
-	}
-
-	public void setCredentialsCharset(Charset credentialsCharset) {
+	/**
+	 * Sets the {@link Charset} used to decode the Base64-encoded bytes of the basic
+	 * authentication credentials. The default is <code>UTF_8</code>.
+	 * @param credentialsCharset the {@link Charset} used to decode the Base64-encoded
+	 * bytes of the basic authentication credentials
+	 * @since 5.7
+	 */
+	public final void setCredentialsCharset(Charset credentialsCharset) {
 		Assert.notNull(credentialsCharset, "credentialsCharset cannot be null");
 		this.credentialsCharset = credentialsCharset;
 	}

+ 8 - 1
web/src/test/java/org/springframework/security/web/server/authentication/ServerHttpBasicAuthenticationConverterTests.java

@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2018 the original author or authors.
+ * Copyright 2002-2022 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,6 +28,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
 import org.springframework.security.core.Authentication;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
 
 /**
  * @author Rob Winch
@@ -39,6 +40,12 @@ public class ServerHttpBasicAuthenticationConverterTests {
 
 	MockServerHttpRequest.BaseBuilder<?> request = MockServerHttpRequest.get("/");
 
+	@Test
+	public void setCredentialsCharsetWhenNullThenThrowsIllegalArgumentException() {
+		assertThatIllegalArgumentException().isThrownBy(() -> this.converter.setCredentialsCharset(null))
+				.withMessage("credentialsCharset cannot be null");
+	}
+
 	@Test
 	public void applyWhenNoAuthorizationHeaderThenEmpty() {
 		Mono<Authentication> result = apply(this.request);