Skip to content

Commit 23e0e60

Browse files
committed
don't allow empty credentials
closes #4
1 parent 223c3bf commit 23e0e60

2 files changed

Lines changed: 32 additions & 3 deletions

File tree

src/SuperBasicAuth.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,23 @@
33
namespace Sven\SuperBasicAuth;
44

55
use Closure;
6+
use Illuminate\Http\Request;
67

78
class SuperBasicAuth
89
{
910
/**
1011
* Handle an incoming request.
1112
*
12-
* @param \Illuminate\Http\Request $request
13-
* @param \Closure $next
13+
* @param \Illuminate\Http\Request $request
14+
* @param \Closure $next
1415
*
1516
* @return mixed
1617
*/
1718
public function handle($request, Closure $next)
1819
{
19-
if ($request->getUser() === config('auth.basic.user') &&
20+
if (
21+
!$this->emptyCredentials($request) &&
22+
$request->getUser() === config('auth.basic.user') &&
2023
$request->getPassword() === config('auth.basic.password')
2124
) {
2225
return $next($request);
@@ -26,4 +29,14 @@ public function handle($request, Closure $next)
2629
'WWW-Authenticate' => 'Basic',
2730
]);
2831
}
32+
33+
/**
34+
* @param \Illuminate\Http\Request $request
35+
*
36+
* @return bool
37+
*/
38+
public function emptyCredentials(Request $request): bool
39+
{
40+
return $request->getUser() === null && $request->getPassword() === null;
41+
}
2942
}

tests/SuperBasicAuthTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,20 @@ public function it_authenticates_a_user_by_correct_username_and_password()
6565
->assertStatus(200)
6666
->assertSee('admin');
6767
}
68+
69+
/** @test */
70+
public function it_denies_entry_when_username_or_password_are_null()
71+
{
72+
app('config')->set('auth.basic.user', null);
73+
app('config')->set('auth.basic.password', null);
74+
75+
$headers = [
76+
'PHP_AUTH_USER' => null,
77+
'PHP_AUTH_PW' => null,
78+
];
79+
80+
$this->get('/admin', $headers)
81+
->assertStatus(401)
82+
->assertHeader('WWW-Authenticate', 'Basic');
83+
}
6884
}

0 commit comments

Comments
 (0)