@ -816,6 +816,45 @@ static void on_jwt_creds_get_metadata_failure(
GPR_ASSERT ( strcmp ( ( const char * ) user_data , test_user_data ) = = 0 ) ;
}
static grpc_service_account_jwt_access_credentials * creds_as_jwt (
grpc_call_credentials * creds ) {
GPR_ASSERT ( creds ! = NULL ) ;
GPR_ASSERT ( strcmp ( creds - > type , GRPC_CALL_CREDENTIALS_TYPE_JWT ) = = 0 ) ;
return ( grpc_service_account_jwt_access_credentials * ) creds ;
}
static void test_jwt_creds_lifetime ( void ) {
char * json_key_string = test_json_key_str ( ) ;
// Max lifetime.
grpc_call_credentials * jwt_creds =
grpc_service_account_jwt_access_credentials_create (
json_key_string , grpc_max_auth_token_lifetime ( ) , NULL ) ;
GPR_ASSERT ( gpr_time_cmp ( creds_as_jwt ( jwt_creds ) - > jwt_lifetime ,
grpc_max_auth_token_lifetime ( ) ) = = 0 ) ;
grpc_call_credentials_release ( jwt_creds ) ;
// Shorter lifetime.
gpr_timespec token_lifetime = { 10 , 0 , GPR_TIMESPAN } ;
GPR_ASSERT ( gpr_time_cmp ( grpc_max_auth_token_lifetime ( ) , token_lifetime ) > 0 ) ;
jwt_creds = grpc_service_account_jwt_access_credentials_create (
json_key_string , token_lifetime , NULL ) ;
GPR_ASSERT (
gpr_time_cmp ( creds_as_jwt ( jwt_creds ) - > jwt_lifetime , token_lifetime ) = = 0 ) ;
grpc_call_credentials_release ( jwt_creds ) ;
// Cropped lifetime.
gpr_timespec add_to_max = { 10 , 0 , GPR_TIMESPAN } ;
token_lifetime = gpr_time_add ( grpc_max_auth_token_lifetime ( ) , add_to_max ) ;
jwt_creds = grpc_service_account_jwt_access_credentials_create (
json_key_string , token_lifetime , NULL ) ;
GPR_ASSERT ( gpr_time_cmp ( creds_as_jwt ( jwt_creds ) - > jwt_lifetime ,
grpc_max_auth_token_lifetime ( ) ) = = 0 ) ;
grpc_call_credentials_release ( jwt_creds ) ;
gpr_free ( json_key_string ) ;
}
static void test_jwt_creds_success ( void ) {
char * json_key_string = test_json_key_str ( ) ;
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT ;
@ -1216,6 +1255,7 @@ int main(int argc, char **argv) {
test_compute_engine_creds_failure ( ) ;
test_refresh_token_creds_success ( ) ;
test_refresh_token_creds_failure ( ) ;
test_jwt_creds_lifetime ( ) ;
test_jwt_creds_success ( ) ;
test_jwt_creds_signing_failure ( ) ;
test_google_default_creds_auth_key ( ) ;