Switching from UNAUTHENTICATED to UNAVAILABLE for auth metadata failure

Typically these failures are symptomatic of a busy oauth2 auth
server and calls should be retried in this case.
pull/13322/head
Julien Boeuf 7 years ago
parent 2575141dc0
commit 5addba4749
  1. 2
      src/core/lib/security/transport/client_auth_filter.cc
  2. 8
      test/cpp/end2end/end2end_test.cc

@ -113,7 +113,7 @@ static void on_credentials_metadata(grpc_exec_ctx* exec_ctx, void* arg,
grpc_call_next_op(exec_ctx, elem, batch); grpc_call_next_op(exec_ctx, elem, batch);
} else { } else {
error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS, error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS,
GRPC_STATUS_UNAUTHENTICATED); GRPC_STATUS_UNAVAILABLE);
grpc_transport_stream_op_batch_finish_with_failure(exec_ctx, batch, error, grpc_transport_stream_op_batch_finish_with_failure(exec_ctx, batch, error,
calld->call_combiner); calld->call_combiner);
} }

@ -1594,7 +1594,7 @@ TEST_P(SecureEnd2endTest, AuthMetadataPluginKeyFailure) {
Status s = stub_->Echo(&context, request, &response); Status s = stub_->Echo(&context, request, &response);
EXPECT_FALSE(s.ok()); EXPECT_FALSE(s.ok());
EXPECT_EQ(s.error_code(), StatusCode::UNAUTHENTICATED); EXPECT_EQ(s.error_code(), StatusCode::UNAVAILABLE);
} }
TEST_P(SecureEnd2endTest, AuthMetadataPluginValueFailure) { TEST_P(SecureEnd2endTest, AuthMetadataPluginValueFailure) {
@ -1611,7 +1611,7 @@ TEST_P(SecureEnd2endTest, AuthMetadataPluginValueFailure) {
Status s = stub_->Echo(&context, request, &response); Status s = stub_->Echo(&context, request, &response);
EXPECT_FALSE(s.ok()); EXPECT_FALSE(s.ok());
EXPECT_EQ(s.error_code(), StatusCode::UNAUTHENTICATED); EXPECT_EQ(s.error_code(), StatusCode::UNAVAILABLE);
} }
TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginFailure) { TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginFailure) {
@ -1629,7 +1629,7 @@ TEST_P(SecureEnd2endTest, NonBlockingAuthMetadataPluginFailure) {
Status s = stub_->Echo(&context, request, &response); Status s = stub_->Echo(&context, request, &response);
EXPECT_FALSE(s.ok()); EXPECT_FALSE(s.ok());
EXPECT_EQ(s.error_code(), StatusCode::UNAUTHENTICATED); EXPECT_EQ(s.error_code(), StatusCode::UNAVAILABLE);
EXPECT_EQ(s.error_message(), EXPECT_EQ(s.error_message(),
grpc::string("Getting metadata from plugin failed with error: ") + grpc::string("Getting metadata from plugin failed with error: ") +
kTestCredsPluginErrorMsg); kTestCredsPluginErrorMsg);
@ -1690,7 +1690,7 @@ TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginFailure) {
Status s = stub_->Echo(&context, request, &response); Status s = stub_->Echo(&context, request, &response);
EXPECT_FALSE(s.ok()); EXPECT_FALSE(s.ok());
EXPECT_EQ(s.error_code(), StatusCode::UNAUTHENTICATED); EXPECT_EQ(s.error_code(), StatusCode::UNAVAILABLE);
EXPECT_EQ(s.error_message(), EXPECT_EQ(s.error_message(),
grpc::string("Getting metadata from plugin failed with error: ") + grpc::string("Getting metadata from plugin failed with error: ") +
kTestCredsPluginErrorMsg); kTestCredsPluginErrorMsg);

Loading…
Cancel
Save