Skip to content

Commit 59e870f

Browse files
committed
fix MatchError on auth header parameter
Header parameter doesn't have a value without '=' then application will be error
1 parent 803be11 commit 59e870f

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

scala-oauth2-core/src/main/scala/scalaoauth2/provider/AccessTokenFetcher.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ object AuthHeader extends AccessTokenFetcher {
4949
val pairs = REGEXP_DIV_COMMA.split(trimmedHeader).map { exp =>
5050
val (key, value) = exp.split("=", 2) match {
5151
case Array(k, v) => (k, v.replaceFirst("^\"", ""))
52+
case Array(k) => (k, "")
5253
}
5354

5455
(key, URLDecoder.decode(value.replaceFirst("\"$", ""), "UTF-8"))

scala-oauth2-core/src/test/scala/scalaoauth2/provider/AuthHeaderSpec.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,10 @@ class AuthHeaderSpec extends FlatSpec {
7171
result.token should be ("token1")
7272
}
7373

74+
it should "fetch illegal parameter without =" in {
75+
val result = AuthHeader.fetch(createRequest(Some("""OAuth access_token_value,fizz=buzz,foo""")))
76+
result.token should be ("access_token_value")
77+
result.params("fizz") should be ("buzz")
78+
result.params("foo") should be ("")
79+
}
7480
}

0 commit comments

Comments
 (0)