Class: Aws::SNS::MessageVerifier
- Inherits:
-
Object
- Object
- Aws::SNS::MessageVerifier
- Defined in:
- lib/aws-sdk-resources/services/sns/message_verifier.rb
Overview
A utility class that can be used to verify the authenticity of messages sent by Amazon SNS.
verifier = Aws::SNS::MessageVerifier.new
# returns true/false
verifier.authentic?()
# raises a Aws::SNS::MessageVerifier::VerificationError on failure
verifier.authenticate!()
You can re-use a single MessageVerifier instance to authenticate multiple SNS messages.
Defined Under Namespace
Classes: VerificationError
Constant Summary collapse
- SIGNABLE_KEYS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
[ 'Message', 'MessageId', 'Subject', 'SubscribeURL', 'Timestamp', 'Token', 'TopicArn', 'Type', ].freeze
- AWS_HOSTNAMES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
[ /^sns\.[a-zA-Z0-9\-]{3,}\.amazonaws\.com(\.cn)?$/ ]
Instance Method Summary collapse
-
#authentic?(message_body) ⇒ Boolean
Returns ‘true` if the given message has been successfully verified.
-
#authenticate!(message_body) ⇒ Boolean
Returns ‘true` when the given message has been successfully verified.
-
#initialize ⇒ MessageVerifier
constructor
A new instance of MessageVerifier.
Constructor Details
#initialize ⇒ MessageVerifier
Returns a new instance of MessageVerifier.
42 43 44 |
# File 'lib/aws-sdk-resources/services/sns/message_verifier.rb', line 42 def initialize @cached_pems = {} end |
Instance Method Details
#authentic?(message_body) ⇒ Boolean
Returns ‘true` if the given message has been successfully verified. Returns `false` otherwise.
49 50 51 52 53 |
# File 'lib/aws-sdk-resources/services/sns/message_verifier.rb', line 49 def authentic?() authenticate!() rescue VerificationError false end |
#authenticate!(message_body) ⇒ Boolean
Returns ‘true` when the given message has been successfully verified.
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/aws-sdk-resources/services/sns/message_verifier.rb', line 60 def authenticate!() msg = Json.load() msg = convert_lambda_msg(msg) if is_from_lambda(msg) if public_key(msg).verify(sha1, signature(msg), canonical_string(msg)) true else msg = 'the authenticity of the message cannot be verified' raise VerificationError, msg end end |