Add public property google.auth.credentials.Signing.signer (#110)
diff --git a/google/auth/app_engine.py b/google/auth/app_engine.py
index 8b17e76..e6e84d2 100644
--- a/google/auth/app_engine.py
+++ b/google/auth/app_engine.py
@@ -123,6 +123,7 @@
super(Credentials, self).__init__()
self._scopes = scopes
self._service_account_id = service_account_id
+ self._signer = Signer()
@_helpers.copy_docstring(credentials.Credentials)
def refresh(self, request):
@@ -156,9 +157,14 @@
@_helpers.copy_docstring(credentials.Signing)
def sign_bytes(self, message):
- return Signer().sign(message)
+ return self._signer.sign(message)
@property
@_helpers.copy_docstring(credentials.Signing)
def signer_email(self):
return self.service_account_email
+
+ @property
+ @_helpers.copy_docstring(credentials.Signing)
+ def signer(self):
+ return self._signer
diff --git a/google/auth/credentials.py b/google/auth/credentials.py
index 360dc0e..2358b1d 100644
--- a/google/auth/credentials.py
+++ b/google/auth/credentials.py
@@ -236,3 +236,10 @@
# pylint: disable=missing-raises-doc
# (pylint doesn't recognize that this is abstract)
raise NotImplementedError('Signer email must be implemented.')
+
+ @abc.abstractproperty
+ def signer(self):
+ """google.auth.crypt.Signer: The signer used to sign bytes."""
+ # pylint: disable=missing-raises-doc
+ # (pylint doesn't recognize that this is abstract)
+ raise NotImplementedError('Signer must be implemented.')
diff --git a/google/auth/jwt.py b/google/auth/jwt.py
index dfaf2e6..418be6b 100644
--- a/google/auth/jwt.py
+++ b/google/auth/jwt.py
@@ -468,6 +468,11 @@
def signer_email(self):
return self._issuer
+ @property
+ @_helpers.copy_docstring(credentials.Signing)
+ def signer(self):
+ return self._signer
+
def before_request(self, request, method, url, headers):
"""Performs credential-specific before request logic.
diff --git a/google/oauth2/service_account.py b/google/oauth2/service_account.py
index 48b537d..b71b8ac 100644
--- a/google/oauth2/service_account.py
+++ b/google/oauth2/service_account.py
@@ -320,5 +320,10 @@
@property
@_helpers.copy_docstring(credentials.Signing)
+ def signer(self):
+ return self._signer
+
+ @property
+ @_helpers.copy_docstring(credentials.Signing)
def signer_email(self):
return self._service_account_email