docs: fix generic webhook example
Signed-off-by: Raffael Sahli <raffael.sahli@doodle.com>
This commit is contained in:
		
							parent
							
								
									4343908a70
								
							
						
					
					
						commit
						605b42dcae
					
				|  | @ -235,7 +235,7 @@ func verifySignature(signature string, payload, key []byte) error { | ||||||
| 	case "sha512": | 	case "sha512": | ||||||
| 		newF = sha512.New | 		newF = sha512.New | ||||||
| 	default: | 	default: | ||||||
| 		return fmt.Errorf("unsupported signature algorithm %q", sigHdr[0]) | 		return fmt.Errorf("unsupported signature algorithm %q", sig[0]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	mac := hmac.New(newF, key) | 	mac := hmac.New(newF, key) | ||||||
|  | @ -244,22 +244,22 @@ func verifySignature(signature string, payload, key []byte) error { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	sum := fmt.Sprintf("%x", mac.Sum(nil)) | 	sum := fmt.Sprintf("%x", mac.Sum(nil)) | ||||||
| 	if sum != sig[0] { | 	if sum != sig[1] { | ||||||
| 		return fmt.Errorf("HMACs do not match: %#v != %#v", sum, sigHdr[0]) | 		return fmt.Errorf("HMACs do not match: %#v != %#v", sum, sig[1]) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func handleRequest(w http.ResponseWriter, r *http.Request) { | func handleRequest(w http.ResponseWriter, r *http.Request) { | ||||||
| 	// Require a X-Signature header | 	// Require a X-Signature header | ||||||
| 	if len(r.Header["X-Signature"])) == 0 { | 	if len(r.Header["X-Signature"]) == 0 { | ||||||
| 		http.Error(w, "missing X-Signature header", http.StatusBadRequest) | 		http.Error(w, "missing X-Signature header", http.StatusBadRequest) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Read the request body with a limit of 1MB | 	// Read the request body with a limit of 1MB | ||||||
| 	lr := io.LimitReader(r.Body, 1<<20) | 	lr := io.LimitReader(r.Body, 1<<20) | ||||||
| 	body, err := ioutil.ReadAll(lr) | 	body, err := io.ReadAll(lr) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		http.Error(w, "failed to read request body", http.StatusBadRequest) | 		http.Error(w, "failed to read request body", http.StatusBadRequest) | ||||||
| 		return | 		return | ||||||
|  | @ -269,7 +269,7 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { | ||||||
| 	// Provider | 	// Provider | ||||||
| 	key := "<token>" | 	key := "<token>" | ||||||
| 	if err := verifySignature(r.Header.Get("X-Signature"), body, key); err != nil { | 	if err := verifySignature(r.Header.Get("X-Signature"), body, key); err != nil { | ||||||
| 		http.Error(w, fmt.Sprintf("failed to verify HMAC signature: %s", err.String()), http.StatusBadRequest) | 		http.Error(w, fmt.Sprintf("failed to verify HMAC signature: %s", err.Error()), http.StatusBadRequest) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue