diff --git a/src/php/ext/grpc/call_credentials.c b/src/php/ext/grpc/call_credentials.c index 06c6fc0566a3394eb7726b978c6de052bff1748a..285c4e7c85612ade2993be1c4beb62345fb7e65e 100644 --- a/src/php/ext/grpc/call_credentials.c +++ b/src/php/ext/grpc/call_credentials.c @@ -183,7 +183,9 @@ void plugin_get_metadata(void *ptr, grpc_auth_metadata_context context, zval *arg; zval *retval; MAKE_STD_ZVAL(arg); - ZVAL_STRING(arg, context.service_url, 1); + object_init(arg); + add_property_string(arg, "service_url", context.service_url, true); + add_property_string(arg, "method_name", context.method_name, true); params[0] = &arg; state->fci->param_count = 1; state->fci->params = params; diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php index 45aa8bfc6bfe207e05ac46c736dbf2de35597017..ee604a387cc48dcb5557d4df0516c9cf81e0a49e 100755 --- a/src/php/tests/interop/interop_client.php +++ b/src/php/tests/interop/interop_client.php @@ -191,8 +191,10 @@ function oauth2AuthToken($stub, $args) 'invalid email returned'); } -function updateAuthMetadataCallback($authUri) +function updateAuthMetadataCallback($context) { + $authUri = $context->service_url; + $methodName = $context->method_name; $auth_credentials = ApplicationDefaultCredentials::getCredentials(); return $auth_credentials->updateMetadata($metadata = [], $authUri); diff --git a/src/php/tests/unit_tests/CallCredentialsTest.php b/src/php/tests/unit_tests/CallCredentialsTest.php index aac21d4c492dc16ef34cbe0bfb53a022cc8ba70c..0918412781614ab4c662e2c21976dde12acad83d 100644 --- a/src/php/tests/unit_tests/CallCredentialsTest.php +++ b/src/php/tests/unit_tests/CallCredentialsTest.php @@ -69,9 +69,10 @@ class CallCredentialsTest extends PHPUnit_Framework_TestCase unset($this->server); } - public function callbackFunc($service_url) + public function callbackFunc($context) { - $this->assertTrue(is_string($service_url)); + $this->assertTrue(is_string($context->service_url)); + $this->assertTrue(is_string($context->method_name)); return ['k1' => ['v1'], 'k2' => ['v2']]; }