Browse Source

Bearer Token Padding

Closes gh-8502
pull/8850/head
kothasa 6 years ago committed by Josh Cummings
parent
commit
d38dabac02
No known key found for this signature in database
GPG Key ID: 49EF60DD7FF83443
  1. 2
      oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/DefaultBearerTokenResolver.java
  2. 20
      oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/web/DefaultBearerTokenResolverTests.java

2
oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/DefaultBearerTokenResolver.java

@ -110,7 +110,7 @@ public final class DefaultBearerTokenResolver implements BearerTokenResolver { @@ -110,7 +110,7 @@ public final class DefaultBearerTokenResolver implements BearerTokenResolver {
throw new OAuth2AuthenticationException(error);
}
return matcher.group("token");
return authorization.substring(7);
}
return null;
}

20
oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/web/DefaultBearerTokenResolverTests.java

@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThatCode; @@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThatCode;
*/
public class DefaultBearerTokenResolverTests {
private static final String CUSTOM_HEADER = "custom-header";
private static final String TEST_TOKEN = "test-token";
private static final String TEST_TOKEN = "ab5FG/ywfXPwiPc6ErRQM643QqY";
private DefaultBearerTokenResolver resolver;
@ -51,6 +51,24 @@ public class DefaultBearerTokenResolverTests { @@ -51,6 +51,24 @@ public class DefaultBearerTokenResolverTests {
assertThat(this.resolver.resolve(request)).isEqualTo(TEST_TOKEN);
}
@Test
public void resolveWhenValidHeaderIsPresentWithSingleBytePaddingIndicatorThenTokenIsResolved() {
String token = TEST_TOKEN + "=";
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("Authorization", "Bearer " + token);
assertThat(this.resolver.resolve(request)).isEqualTo(token);
}
@Test
public void resolveWhenValidHeaderIsPresentWithTwoBytesPaddingIndicatorThenTokenIsResolved() {
String token = TEST_TOKEN + "==";
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("Authorization", "Bearer " + token);
assertThat(this.resolver.resolve(request)).isEqualTo(token);
}
@Test
public void resolveWhenCustomDefinedHeaderIsValidAndPresentThenTokenIsResolved() {
this.resolver.setBearerTokenHeaderName(CUSTOM_HEADER);

Loading…
Cancel
Save