@@ -2,27 +2,41 @@ import 'dart:async';
22import 'dart:convert' ;
33
44import 'package:echidna_server/echidna_server.dart' ;
5- import 'package:echidna_server/modules/client/client.dart' ;
65import 'package:shelf/shelf.dart' ;
76import 'package:shelf_modular/shelf_modular.dart' ;
87
98/// Verifies that the client key is valid.
109class SignatureGuard extends RouteGuard {
1110 @override
1211 FutureOr <bool > canActivate (Request request, [ModularRoute ? route]) async {
12+ request.log ('Checking signature' );
13+
1314 final body = await request.readAsString ();
1415
1516 final signatureService = Modular .get <SignatureService >();
1617
1718 final clientKey = await signatureService.extractClientKey (request);
1819
19- if (clientKey == null ) return false ;
20+ if (clientKey == null ) {
21+ request.log ('No client key found' );
22+
23+ return false ;
24+ }
2025
2126 final signature = request.headers['x-signature' ];
2227
23- if (signature == null ) return false ;
28+ if (signature == null ) {
29+ request.log ('No signature provided' );
30+ return false ;
31+ }
32+
33+ request.log ('Signature provided: $signature ' );
34+
35+ final isValid = signatureService.verifySignature (signature, body, clientKey.key! );
36+
37+ request.log (isValid ? 'Signature verification succeeded' : 'Signature verification failed' );
2438
25- return signatureService. verifySignature (signature, body, clientKey.key ! ) ;
39+ return isValid ;
2640 }
2741
2842 @override
0 commit comments