Skip to content

Commit

Permalink
Merge pull request grpc#1072 from yang-g/refreshtoken
Browse files Browse the repository at this point in the history
wrap refresh token credentials in c++
  • Loading branch information
jboeuf committed Mar 18, 2015
2 parents cb8985d + 5ebd6c7 commit a8edeae
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
10 changes: 8 additions & 2 deletions include/grpc++/credentials.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class Credentials {

protected:
friend std::unique_ptr<Credentials> CompositeCredentials(
const std::unique_ptr<Credentials>& creds1,
const std::unique_ptr<Credentials>& creds2);
const std::unique_ptr<Credentials>& creds1,
const std::unique_ptr<Credentials>& creds2);

virtual SecureCredentials* AsSecureCredentials() = 0;

Expand Down Expand Up @@ -113,6 +113,12 @@ std::unique_ptr<Credentials> ServiceAccountCredentials(
std::unique_ptr<Credentials> JWTCredentials(
const grpc::string& json_key, std::chrono::seconds token_lifetime);

// Builds refresh token credentials.
// json_refresh_token is the JSON string containing the refresh token along
// with a client_id and client_secret.
std::unique_ptr<Credentials> RefreshTokenCredentials(
const grpc::string& json_refresh_token);

// Builds IAM credentials.
std::unique_ptr<Credentials> IAMCredentials(
const grpc::string& authorization_token,
Expand Down
12 changes: 10 additions & 2 deletions src/cpp/client/secure_credentials.cc
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ class SecureCredentials GRPC_FINAL : public Credentials {
args.SetChannelArgs(&channel_args);
return std::shared_ptr<ChannelInterface>(new Channel(
args.GetSslTargetNameOverride().empty()
? target : args.GetSslTargetNameOverride(),
? target
: args.GetSslTargetNameOverride(),
grpc_secure_channel_create(c_creds_, target.c_str(), &channel_args)));
}

Expand Down Expand Up @@ -111,7 +112,7 @@ std::unique_ptr<Credentials> ServiceAccountCredentials(

// Builds JWT credentials.
std::unique_ptr<Credentials> JWTCredentials(
const grpc::string &json_key, std::chrono::seconds token_lifetime) {
const grpc::string& json_key, std::chrono::seconds token_lifetime) {
if (token_lifetime.count() <= 0) {
gpr_log(GPR_ERROR,
"Trying to create JWTCredentials with non-positive lifetime");
Expand All @@ -122,6 +123,13 @@ std::unique_ptr<Credentials> JWTCredentials(
grpc_jwt_credentials_create(json_key.c_str(), lifetime));
}

// Builds refresh token credentials.
std::unique_ptr<Credentials> RefreshTokenCredentials(
const grpc::string& json_refresh_token) {
return WrapCredentials(
grpc_refresh_token_credentials_create(json_refresh_token.c_str()));
}

// Builds IAM credentials.
std::unique_ptr<Credentials> IAMCredentials(
const grpc::string& authorization_token,
Expand Down

0 comments on commit a8edeae

Please sign in to comment.