From ef58e15547ee171a716eaa768374e2e7e2f7d397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 25 Oct 2017 20:17:21 +0100 Subject: Introduce cowboy_req:sock/1 and cowboy_req:cert/1 To obtain the local socket ip/port and the client TLS certificate, respectively. --- test/req_SUITE.erl | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'test/req_SUITE.erl') diff --git a/test/req_SUITE.erl b/test/req_SUITE.erl index 3b32b3a..26ced62 100644 --- a/test/req_SUITE.erl +++ b/test/req_SUITE.erl @@ -134,6 +134,30 @@ bindings(Config) -> <<"#{key => <<\"bindings\">>}">> = do_get_body("/bindings", Config), ok. +cert(Config) -> + case config(type, Config) of + tcp -> doc("TLS certificates can only be provided over TLS."); + ssl -> do_cert(Config) + end. + +do_cert(Config0) -> + doc("A client TLS certificate was provided."), + {CaCert, Cert, Key} = ct_helper:make_certs(), + Config = [{transport_opts, [ + {cert, Cert}, + {key, Key}, + {cacerts, [CaCert]} + ]}|Config0], + Cert = do_get_body("/cert", Config), + Cert = do_get_body("/direct/cert", Config), + ok. + +cert_undefined(Config) -> + doc("No client TLS certificate was provided."), + <<"undefined">> = do_get_body("/cert", Config), + <<"undefined">> = do_get_body("/direct/cert", Config), + ok. + header(Config) -> doc("Request header with/without default."), <<"value">> = do_get_body("/args/header/defined", [{<<"defined">>, "value"}], Config), @@ -274,7 +298,7 @@ path_info(Config) -> ok. peer(Config) -> - doc("Request peer."), + doc("Remote socket address."), <<"{{127,0,0,1},", _/bits >> = do_get_body("/peer", Config), <<"{{127,0,0,1},", _/bits >> = do_get_body("/direct/peer", Config), ok. @@ -309,6 +333,12 @@ do_scheme(Path, Config) -> <<"https">> when Transport =:= ssl -> ok end. +sock(Config) -> + doc("Local socket address."), + <<"{{127,0,0,1},", _/bits >> = do_get_body("/sock", Config), + <<"{{127,0,0,1},", _/bits >> = do_get_body("/direct/sock", Config), + ok. + uri(Config) -> doc("Request URI building/modification."), Scheme = case config(type, Config) of -- cgit v1.2.3