|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2021 the original author or authors. |
|
|
|
* Copyright 2002-2024 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -21,8 +21,11 @@ import java.util.Base64; |
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.http.HttpStatus; |
|
|
|
import org.springframework.mock.web.MockHttpServletRequest; |
|
|
|
import org.springframework.mock.web.MockHttpServletRequest; |
|
|
|
import org.springframework.security.oauth2.core.OAuth2AuthenticationException; |
|
|
|
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.assertThat; |
|
|
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType; |
|
|
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType; |
|
|
|
@ -258,4 +261,35 @@ public class DefaultBearerTokenResolverTests { |
|
|
|
assertThat(this.resolver.resolve(request)).isNull(); |
|
|
|
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); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|