Skip to content

Commit b49fbc9

Browse files
authored
Merge pull request #53 from hmic/patch-1
Fix #43
2 parents c010113 + 29bc9aa commit b49fbc9

File tree

2 files changed

+35
-13
lines changed

2 files changed

+35
-13
lines changed

src/Auth/JwtAuthenticate.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public function getToken($request = null)
186186
}
187187

188188
$header = $request->header($config['header']);
189-
if ($header) {
189+
if ($header && stripos($header, $config['prefix']) === 0) {
190190
return $this->_token = str_ireplace($config['prefix'] . ' ', '', $header);
191191
}
192192

tests/TestCase/Auth/JwtAuthenticateTest.php

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ public function testAuthenticateTokenParameter()
7272
$request = new Request('posts/index?tokenname=' . $this->token);
7373
$result = $this->auth->getUser($request, $this->response);
7474
$this->assertEquals($expected, $result);
75+
76+
$request = new Request('posts/index?wrongtoken=' . $this->token);
77+
$result = $this->auth->getUser($request, $this->response);
78+
$this->assertFalse($result);
7579
}
7680

7781
/**
@@ -95,6 +99,10 @@ public function testAuthenticateTokenHeader()
9599
$result = $this->auth->getUser($request, $this->response);
96100
$this->assertEquals($expected, $result);
97101

102+
$request->env('HTTP_AUTHORIZATION', 'WrongBearer ' . $this->token);
103+
$result = $this->auth->getUser($request, $this->response);
104+
$this->assertFalse($result);
105+
98106
$this->setExpectedException('UnexpectedValueException');
99107
$request->env('HTTP_AUTHORIZATION', 'Bearer foobar');
100108
$result = $this->auth->getUser($request, $this->response);
@@ -117,6 +125,10 @@ public function testAuthenticateNoHeaderWithParameterDisabled()
117125

118126
$result = $this->auth->getUser($request, $this->response);
119127
$this->assertFalse($result);
128+
129+
$request = new Request('posts/index?token=' . $this->token);
130+
$result = $this->auth->getUser($request, $this->response);
131+
$this->assertFalse($result);
120132
}
121133

122134
/**
@@ -126,18 +138,20 @@ public function testAuthenticateNoHeaderWithParameterDisabled()
126138
*/
127139
public function testQueryDatasourceFalse()
128140
{
129-
$request = new Request('posts/index');
130-
131141
$expected = [
132-
'id' => 99,
133-
'username' => 'ADmad',
134-
'group' => ['name' => 'admin'],
142+
'id' => 99,
143+
'username' => 'ADmad',
144+
'group' => ['name' => 'admin'],
135145
];
136-
$request->env(
137-
'HTTP_AUTHORIZATION',
138-
'Bearer ' . JWT::encode($expected, Security::salt())
139-
);
146+
$token = JWT::encode($expected, Security::salt());
140147
$this->auth->config('queryDatasource', false);
148+
149+
$request = new Request('posts/index');
150+
$request->env('HTTP_AUTHORIZATION', 'Bearer ' . $token);
151+
$result = $this->auth->getUser($request, $this->response);
152+
$this->assertEquals($expected, $result);
153+
154+
$request = new Request('posts/index?token=' . $token);
141155
$result = $this->auth->getUser($request, $this->response);
142156
$this->assertEquals($expected, $result);
143157
}
@@ -149,12 +163,16 @@ public function testQueryDatasourceFalse()
149163
*/
150164
public function testWithValidTokenButNoUserInDb()
151165
{
152-
$request = new Request('posts/index');
153-
154166
$token = JWT::encode(['id' => 4], Security::salt());
167+
168+
$request = new Request('posts/index');
155169
$request->env('HTTP_AUTHORIZATION', 'Bearer ' . $token);
156170
$result = $this->auth->getUser($request, $this->response);
157171
$this->assertFalse($result);
172+
173+
$request = new Request('posts/index?token=' . $token);
174+
$result = $this->auth->getUser($request, $this->response);
175+
$this->assertFalse($result);
158176
}
159177

160178
/**
@@ -270,9 +288,13 @@ public function testCustomKey()
270288

271289
$payload = ['sub' => 100];
272290
$token = Jwt::encode($payload, $key);
273-
$request = new Request();
291+
292+
$request = new Request('posts/index');
274293
$request->env('HTTP_AUTHORIZATION', 'Bearer ' . $token);
294+
$result = $auth->getUser($request, $this->response);
295+
$this->assertEquals($payload, $result);
275296

297+
$request = new Request('posts/index?token=' . $token);
276298
$result = $auth->getUser($request, $this->response);
277299
$this->assertEquals($payload, $result);
278300
}

0 commit comments

Comments
 (0)