diff options
author | Julien Boeuf <jboeuf@google.com> | 2015-04-29 11:31:06 -0700 |
---|---|---|
committer | Julien Boeuf <jboeuf@google.com> | 2015-05-20 07:48:48 +0200 |
commit | 84d964a8df03b4bb40e7d510f517fc65633e03f8 (patch) | |
tree | 8dc82ee2d59ffa80fe8faa91c46518983b2933b9 /test/core/end2end | |
parent | c6f8d0a4c6bd70cc4f48b2f6ddd3ca15d76cec06 (diff) |
API for auth context and server-side secure transport only impl.
Still TODO:
- a way to plug a metadata processing (somewhat elsewhere but did not
one to overload this already large PR).
- plug-in the auth context on the client side.
- Better end to end testing.
Diffstat (limited to 'test/core/end2end')
-rw-r--r-- | test/core/end2end/tests/request_response_with_payload_and_call_creds.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c index 01554bed8c..8e1fb63d74 100644 --- a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c +++ b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c @@ -111,6 +111,27 @@ static void end_test(grpc_end2end_test_fixture *f) { grpc_completion_queue_destroy(f->client_cq); } +static void print_auth_context(int is_client, const grpc_auth_context *ctx) { + const grpc_auth_property *p; + grpc_auth_property_iterator *it; + gpr_log(GPR_INFO, "%s peer:", is_client ? "client" : "server"); + it = grpc_auth_context_peer_identity(ctx); + gpr_log(GPR_INFO, "\tauthenticated: %s", it != NULL ? "YES" : "NO"); + if (it != NULL) { + while ((p = grpc_auth_property_iterator_next(it)) != NULL) { + gpr_log(GPR_INFO, "\t\t%s: %s", p->name, p->value); + } + grpc_auth_property_iterator_destroy(it); + } + gpr_log(GPR_INFO, "\tall properties:"); + it = grpc_auth_context_property_iterator(ctx); + GPR_ASSERT(it != NULL); + while ((p = grpc_auth_property_iterator_next(it)) != NULL) { + gpr_log(GPR_INFO, "\t\t%s: %s", p->name, p->value); + } + grpc_auth_property_iterator_destroy(it); +} + static void test_call_creds_failure(grpc_end2end_test_config config) { grpc_call *c; grpc_credentials *creds = NULL; @@ -158,6 +179,7 @@ static void request_response_with_payload_and_call_creds( size_t details_capacity = 0; int was_cancelled = 2; grpc_credentials *creds = NULL; + const grpc_auth_context *s_auth_context = NULL; c = grpc_channel_create_call(f.client, f.client_cq, "/foo", "foo.test.google.fr", deadline); @@ -212,10 +234,13 @@ static void request_response_with_payload_and_call_creds( GPR_ASSERT(GRPC_CALL_OK == grpc_server_request_call(f.server, &s, &call_details, &request_metadata_recv, - f.server_cq, f.server_cq, + f.server_cq, f.server_cq, tag(101))); cq_expect_completion(v_server, tag(101), 1); cq_verify(v_server); + s_auth_context = grpc_call_auth_context(s); + GPR_ASSERT(s_auth_context != NULL); + print_auth_context(0, s_auth_context); /* Cannot set creds on the server call object. */ GPR_ASSERT(grpc_call_set_credentials(s, NULL) != GRPC_CALL_OK); |