2015-12-16 1 views
4

Ma question pour aujourd'hui: est-il un officiel façon d'obtenir des informations de prise de ssl par les pairs (certificat par les pairs pour être exact) dans cowboy_http_handler « s Handler:handle(Req, State)?Comment obtenir le certificat de pairs dans cowboy_http_handler

Bien sûr, je peux gratter Req tuple (prise par les pairs est le deuxième champ au aujourd'hui) avec erlang:element/2, mais ce n'est pas à l'épreuve et juste ne semble pas juste.

Merci d'avance!

Répondre

4

Il y a un appel exporté:

cowboy_req:get(socket, Req) 

Il retourne la prise, ou à peu près tout le reste, il est dans l'objet Req, actuellement:

bindings 
body_state 
buffer 
connection 
headers 
host 
host_info 
meta 
method 
multipart 
onresponse 
path 
path_info 
peer 
pid 
port 
qs 
resp_body 
resp_compress 
resp_headers 
resp_state 
socket 
transport 
version 

Je ne suis pas sûr si elle est dans la documentation, je ne peux pas le voir, mais c'est beaucoup mieux et moins susceptible d'échouer que d'obtenir simplement une valeur d'élément numérotée, et vous pouvez toujours ajouter un test unitaire qui vérifie que cela fonctionne, donc si ça arrive estampillé/cassé à un moment donné, vous obtenez un heads-up. Je ne pense pas que ça ira n'importe où.