| from boto.auth_handler import AuthHandler |
| from boto.auth_handler import NotReadyToAuthenticate |
| import oauth2_client |
| import oauth2_helper |
| |
| class OAuth2Auth(AuthHandler): |
| |
| capability = ['google-oauth2', 's3'] |
| |
| def __init__(self, path, config, provider): |
| if (provider.name == 'google' |
| and config.has_option('Credentials', 'gs_oauth2_refresh_token')): |
| |
| self.oauth2_client = oauth2_helper.OAuth2ClientFromBotoConfig(config) |
| |
| self.refresh_token = oauth2_client.RefreshToken( |
| self.oauth2_client, |
| config.get('Credentials', 'gs_oauth2_refresh_token')) |
| else: |
| raise NotReadyToAuthenticate() |
| |
| def add_auth(self, http_request): |
| http_request.headers['Authorization'] = \ |
| self.refresh_token.GetAuthorizationHeader() |