66
77use Closure ;
88use Illuminate \Contracts \Hashing \Hasher ;
9- use Illuminate \Contracts \Session \Session ;
109use Illuminate \Contracts \Translation \Translator ;
11- use Illuminate \Database \Eloquent \ModelNotFoundException ;
1210use Illuminate \Http \Request ;
1311use Illuminate \Http \Response ;
1412use Illuminate \Support \Str ;
15- use InvalidArgumentException ;
16- use Symfony \Component \HttpFoundation \Exception \SuspiciousOperationException ;
13+ use Throwable ;
1714use Vdlp \BasicAuthentication \Models \Credential ;
1815
1916final class BasicAuthenticationMiddleware
2017{
21- private Session $ session ;
22- private Translator $ translator ;
23- private Hasher $ hasher ;
24-
25- public function __construct (Session $ session , Translator $ translator , Hasher $ hasher )
26- {
27- $ this ->session = $ session ;
28- $ this ->translator = $ translator ;
29- $ this ->hasher = $ hasher ;
18+ public function __construct (
19+ private Translator $ translator ,
20+ private Hasher $ hasher ,
21+ ) {
3022 }
3123
32- /**
33- * @return mixed
34- *
35- * @throws SuspiciousOperationException
36- * @throws InvalidArgumentException
37- */
38- public function handle (Request $ request , Closure $ next )
24+ public function handle (Request $ request , Closure $ next ): mixed
3925 {
4026 if ($ this ->isIpAddressWhitelisted ((string ) $ request ->ip ())) {
4127 return $ next ($ request );
@@ -47,7 +33,7 @@ public function handle(Request $request, Closure $next)
4733 ->where ('hostname ' , $ request ->getHost ())
4834 ->where ('is_enabled ' , true )
4935 ->firstOrFail (['hostname ' , 'username ' , 'password ' , 'realm ' , 'whitelist ' ]);
50- } catch (ModelNotFoundException $ exception ) {
36+ } catch (Throwable ) {
5137 // @ignoreException
5238 return $ next ($ request );
5339 }
@@ -59,13 +45,6 @@ public function handle(Request $request, Closure $next)
5945 return $ next ($ request );
6046 }
6147
62- $ sessionKey = str_slug (str_replace ('. ' , '_ ' , $ credential ->hostname ) . '_basic_authentication ' );
63-
64- // Session is authorized.
65- if ($ this ->session ->has ($ sessionKey )) {
66- return $ next ($ request );
67- }
68-
6948 $ needsRehash = $ this ->hasher ->needsRehash ($ credential ->password );
7049
7150 // Validate credentials.
@@ -80,8 +59,6 @@ public function handle(Request $request, Closure $next)
8059 return $ this ->getUnauthorizedResponse ($ credential );
8160 }
8261
83- $ this ->session ->put ($ sessionKey , $ request ->getUser ());
84-
8562 return $ next ($ request );
8663 }
8764
0 commit comments