Home | History | Annotate | Download | only in gslib
      1 # -*- coding: utf-8 -*-
      2 # Copyright 2015 Google Inc. All Rights Reserved.
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #     http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 """Developer Shell auth bridge.
     16 
     17 This enables Boto API auth in Developer Shell environment.
     18 """
     19 
     20 from __future__ import absolute_import
     21 
     22 import oauth2client.devshell as devshell
     23 from boto.auth_handler import AuthHandler
     24 from boto.auth_handler import NotReadyToAuthenticate
     25 
     26 
     27 class DevshellAuth(AuthHandler):
     28   """Developer Shell authorization plugin class."""
     29 
     30   capability = ['s3']
     31 
     32   def __init__(self, path, config, provider):
     33     try:
     34       self.creds = devshell.DevshellCredentials()
     35     except:
     36       raise NotReadyToAuthenticate()
     37 
     38   def add_auth(self, http_request):
     39     http_request.headers['Authorization'] = 'Bearer %s' % self.creds.access_token
     40 
     41