diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-09-28 17:50:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-28 17:50:14 +0200 |
commit | 76f360c625d6f7e1200a35430cced872fc6098ff (patch) | |
tree | caa27ee739a112ff0b317a377e64903b39709619 /app/models | |
parent | a3202f61af7d4833808d429c79dfc21e74f06c99 (diff) |
If HTTP signature is wrong and webfinger cache is stale, retry with resolve (#5129)
If the signature could not be verified and the webfinger of the account was last retrieved longer than the cache period, try re-resolving the account and then attempting to verify the signature again
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/account.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 0b025d1be..ce7773b4b 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -137,6 +137,15 @@ class Account < ApplicationRecord subscription_expires_at.present? end + def possibly_stale? + last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago + end + + def refresh! + return if local? + ResolveRemoteAccountService.new.call(acct) + end + def keypair @keypair ||= OpenSSL::PKey::RSA.new(private_key || public_key) end |