Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: remoting/client/appengine/api.py

Issue 7054029: Add in support for connecting with just the OAuth2 token. Default to OAuth2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address Jamie's comments Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | remoting/client/appengine/auth.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """API endpoints to get around javascript's single-origin restriction.""" 7 """API endpoints to get around javascript's single-origin restriction."""
8 8
9 import logging 9 import logging
10 10
11 from django.utils import simplejson as json 11 from django.utils import simplejson as json
12 12
13 from google.appengine.api import urlfetch 13 from google.appengine.api import urlfetch
14 from google.appengine.ext import webapp 14 from google.appengine.ext import webapp
15 from google.appengine.ext.webapp import util 15 from google.appengine.ext.webapp import util
16 from google.appengine.ext.webapp.util import login_required 16 from google.appengine.ext.webapp.util import login_required
17 import auth 17 import auth
18 18
19 19
20 class GetXmppTokenHandler(webapp.RequestHandler):
21 """Retrieves the user's XMPP token."""
22 @login_required
23 def get(self):
24 try:
25 self.response.headers['Content-Type'] = 'application/json'
26 self.response.out.write(
27 json.dumps({'xmpp_token': auth.GetXmppToken().token}))
28 except auth.NotAuthenticated:
29 self.response.out.write('User has not authenticated')
30 self.set_status(400)
31
32
33 class GetHostListHandler(webapp.RequestHandler): 20 class GetHostListHandler(webapp.RequestHandler):
34 """Proxies the host-list handlers on the Chromoting directory.""" 21 """Proxies the host-list handlers on the Chromoting directory."""
35 @login_required 22 @login_required
36 def get(self): 23 def get(self):
37 if not auth.HasOAuth2Tokens(): 24 if not auth.HasOAuth2Tokens():
38 self.response.set_status(403) 25 self.response.set_status(403)
39 self.response.headers['Content-Type'] = 'application/json' 26 self.response.headers['Content-Type'] = 'application/json'
40 self.response.out.write( 27 self.response.out.write(
41 '{"error": { "code": -1, "message": "No OAuth2 token" }}') 28 '{"error": { "code": -1, "message": "No OAuth2 token" }}')
42 return 29 return
43 result = urlfetch.fetch( 30 result = urlfetch.fetch(
44 url = 'https://www.googleapis.com/chromoting/v1/@me/hosts', 31 url = 'https://www.googleapis.com/chromoting/v1/@me/hosts',
45 method = urlfetch.GET, 32 method = urlfetch.GET,
46 headers = {'Authorization': 'OAuth ' + auth.GetAccessToken()}) 33 headers = {'Authorization': 'OAuth ' + auth.GetOAuth2AccessToken()})
47 self.response.set_status(result.status_code) 34 self.response.set_status(result.status_code)
48 for i in result.headers: 35 for i in result.headers:
49 self.response.headers[i] = result.headers[i] 36 self.response.headers[i] = result.headers[i]
50 self.response.out.write(result.content) 37 self.response.out.write(result.content)
51 38
52 39
53 def main(): 40 def main():
54 application = webapp.WSGIApplication( 41 application = webapp.WSGIApplication(
55 [ 42 [
56 ('/api/get_xmpp_token', GetXmppTokenHandler),
57 ('/api/get_host_list', GetHostListHandler) 43 ('/api/get_host_list', GetHostListHandler)
58 ], 44 ],
59 debug=True) 45 debug=True)
60 util.run_wsgi_app(application) 46 util.run_wsgi_app(application)
61 47
62 48
63 if __name__ == '__main__': 49 if __name__ == '__main__':
64 main() 50 main()
OLDNEW
« no previous file with comments | « no previous file | remoting/client/appengine/auth.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698