about summary refs log tree commit diff
path: root/app/controllers/concerns/signature_verification.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-11-09 22:29:52 +0100
committerGitHub <noreply@github.com>2018-11-09 22:29:52 +0100
commit09562b0fcc193d66f89a9f2c7eb2684e2e554d83 (patch)
tree87747f5dda99de033d15ec1319a7c188fa0df750 /app/controllers/concerns/signature_verification.rb
parent868cace7975532509c41800c7b6b9a6c7838a6b0 (diff)
parentc6fc3e0c65a0ae78e76ebb5da1a12a23727b72c8 (diff)
Merge pull request #806 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers/concerns/signature_verification.rb')
-rw-r--r--app/controllers/concerns/signature_verification.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index e5d5e2ca6..7e491641b 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -43,7 +43,12 @@ module SignatureVerification
       return
     end
 
-    account = account_from_key_id(signature_params['keyId'])
+    account_stoplight = Stoplight("source:#{request.ip}") { account_from_key_id(signature_params['keyId']) }
+      .with_fallback { nil }
+      .with_threshold(1)
+      .with_cool_off_time(5.minutes.seconds)
+
+    account = account_stoplight.run
 
     if account.nil?
       @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"