diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index d344978b6b..b6063ca8a5 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -747,7 +747,20 @@ public class HttpHeaders implements MultiValueMap, Serializable String credentialsString = username + ":" + password; byte[] encodedBytes = Base64.getEncoder().encode(credentialsString.getBytes(charset)); String encodedCredentials = new String(encodedBytes, charset); - set(HttpHeaders.AUTHORIZATION, "Basic " + encodedCredentials); + set(AUTHORIZATION, "Basic " + encodedCredentials); + } + + /** + * Set the value of the {@linkplain #AUTHORIZATION Authorization} header to + * the given Bearer token. + * @param token the Base64 encoded token + * @since 5.1 + * @see RFC 6750 + */ + public void setBearerAuth(String token) { + Assert.notNull(token, "Token must not be null"); + + set(AUTHORIZATION, "Bearer " + token); } /** diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 9b4876f7ac..3dd7f912aa 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -549,4 +549,13 @@ public class HttpHeadersTests { headers.setBasicAuth(username, password); } + @Test + public void bearerAuth() { + String token = "foo"; + + headers.setBearerAuth(token); + String authorization = headers.getFirst(HttpHeaders.AUTHORIZATION); + assertEquals("Bearer foo", authorization); + } + }