|
@@ -21,8 +21,11 @@ import java.util.Base64;
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
|
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
|
|
|
+import org.springframework.security.oauth2.server.resource.BearerTokenError;
|
|
|
+import org.springframework.security.oauth2.server.resource.BearerTokenErrorCodes;
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
|
@@ -258,4 +261,35 @@ public class DefaultBearerTokenResolverTests {
|
|
|
assertThat(this.resolver.resolve(request)).isNull();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void resolveWhenQueryParameterIsPresentAndEmptyStringThenTokenIsNotResolved() {
|
|
|
+ this.resolver.setAllowUriQueryParameter(true);
|
|
|
+ MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
+ request.setMethod("GET");
|
|
|
+ request.addParameter("access_token", "");
|
|
|
+ assertThatExceptionOfType(OAuth2AuthenticationException.class).isThrownBy(() -> this.resolver.resolve(request))
|
|
|
+ .withMessageContaining("The requested token parameter is an empty string")
|
|
|
+ .satisfies((e) -> {
|
|
|
+ BearerTokenError error = (BearerTokenError) e.getError();
|
|
|
+ assertThat(error.getErrorCode()).isEqualTo(BearerTokenErrorCodes.INVALID_REQUEST);
|
|
|
+ assertThat(error.getHttpStatus()).isEqualTo(HttpStatus.BAD_REQUEST);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void resolveWhenFormParameterIsPresentAndEmptyStringThenTokenIsNotResolved() {
|
|
|
+ this.resolver.setAllowFormEncodedBodyParameter(true);
|
|
|
+ MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
+ request.setMethod("POST");
|
|
|
+ request.setContentType("application/x-www-form-urlencoded");
|
|
|
+ request.addParameter("access_token", "");
|
|
|
+ assertThatExceptionOfType(OAuth2AuthenticationException.class).isThrownBy(() -> this.resolver.resolve(request))
|
|
|
+ .withMessageContaining("The requested token parameter is an empty string")
|
|
|
+ .satisfies((e) -> {
|
|
|
+ BearerTokenError error = (BearerTokenError) e.getError();
|
|
|
+ assertThat(error.getErrorCode()).isEqualTo(BearerTokenErrorCodes.INVALID_REQUEST);
|
|
|
+ assertThat(error.getHttpStatus()).isEqualTo(HttpStatus.BAD_REQUEST);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|