public class SignatureChecker
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Set<java.lang.String> |
INTERESTING_FIELDS |
private java.lang.String |
MESSAGE |
private java.lang.String |
MESSAGE_ID |
private java.lang.String |
NOTIFICATION_TYPE |
private java.security.Signature |
sigChecker |
private java.lang.String |
SIGNATURE |
private java.lang.String |
SIGNATURE_VERSION |
private java.lang.String |
SUBJECT |
private java.lang.String |
SUBSCRIBE_TYPE |
private java.lang.String |
SUBSCRIBE_URL |
private java.lang.String |
TIMESTAMP |
private java.lang.String |
TOKEN |
private java.lang.String |
TOPIC |
private java.lang.String |
TYPE |
private java.lang.String |
UNSUBSCRIBE_TYPE |
Constructor and Description |
---|
SignatureChecker() |
Modifier and Type | Method and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.String> |
parseJSON(java.lang.String jsonmessage) |
private java.util.TreeMap<java.lang.String,java.lang.String> |
publishMessageValues(java.util.Map<java.lang.String,java.lang.String> parsedMessage) |
protected java.lang.String |
stringToSign(java.util.SortedMap<java.lang.String,java.lang.String> signables) |
private java.util.TreeMap<java.lang.String,java.lang.String> |
subscribeMessageValues(java.util.Map<java.lang.String,java.lang.String> parsedMessage) |
boolean |
verifyMessageSignature(java.lang.String message,
java.security.PublicKey publicKey)
Validates the signature on a Simple Notification Service message.
|
boolean |
verifySignature(java.util.Map<java.lang.String,java.lang.String> parsedMessage,
java.security.PublicKey publicKey)
Validates the signature on a Simple Notification Service message.
|
boolean |
verifySignature(java.lang.String message,
java.lang.String signature,
java.security.PublicKey publicKey)
Does the actual Java cryptographic verification of the signature.
|
private java.security.Signature sigChecker
private final java.lang.String NOTIFICATION_TYPE
private final java.lang.String SUBSCRIBE_TYPE
private final java.lang.String UNSUBSCRIBE_TYPE
private final java.lang.String TYPE
private final java.lang.String SUBSCRIBE_URL
private final java.lang.String MESSAGE
private final java.lang.String TIMESTAMP
private final java.lang.String SIGNATURE_VERSION
private final java.lang.String SIGNATURE
private final java.lang.String MESSAGE_ID
private final java.lang.String SUBJECT
private final java.lang.String TOPIC
private final java.lang.String TOKEN
private final java.util.Set<java.lang.String> INTERESTING_FIELDS
public boolean verifyMessageSignature(java.lang.String message, java.security.PublicKey publicKey)
message
- A JSON-encoded Simple Notification Service message. Note: the
JSON may be only one level deep.publicKey
- The Simple Notification Service public key, exactly as you'd
see it when retrieved from the cert.public boolean verifySignature(java.util.Map<java.lang.String,java.lang.String> parsedMessage, java.security.PublicKey publicKey)
parsedMessage
- A map of Simple Notification Service message.publicKey
- The Simple Notification Service public key, exactly as you'd
see it when retrieved from the cert.public boolean verifySignature(java.lang.String message, java.lang.String signature, java.security.PublicKey publicKey)
message
- Exact string that was signed. In the case of the x-amz-sns-signature header the
signing string is the entire post bodysignature
- Base64-encoded signature of the messageprotected java.lang.String stringToSign(java.util.SortedMap<java.lang.String,java.lang.String> signables)
private java.util.Map<java.lang.String,java.lang.String> parseJSON(java.lang.String jsonmessage)
private java.util.TreeMap<java.lang.String,java.lang.String> publishMessageValues(java.util.Map<java.lang.String,java.lang.String> parsedMessage)
private java.util.TreeMap<java.lang.String,java.lang.String> subscribeMessageValues(java.util.Map<java.lang.String,java.lang.String> parsedMessage)