code: public SnsMessage parseMessage(InputStream messageBody) {
          JsonNode messageJson = toJson(messageBody);
          signatureVerifier.verifySignature(messageJson);
          return messageUnmarshaller.unmarshall(messageJson);
      }
docs: Unmarshalls a message into a subclass of {@link SnsMessage}. This will automatically validate the authenticity of the
  mesage to ensure it was sent by SNS. If the validity of the message cannot be verified an exception will be thrown.
  
  @param messageBody Input stream containing message JSON.
  @return Unmarshalled message object.