Changeset 521:112578de1470 in documentViewer
- Timestamp:
- Mar 15, 2012, 7:37:14 PM (12 years ago)
- Branch:
- default
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
AuthTokenGenerator.py
r520 r521 1 1 from OFS.SimpleItem import SimpleItem 2 from Products.PageTemplates.PageTemplateFile import PageTemplateFile 3 from OFS.PropertyManager import PropertyManager 2 4 3 5 import datetime 4 6 import hashlib 7 import json 5 8 6 9 … … 18 21 19 22 20 class AuthTokenGenerator(SimpleItem): 21 """Generator of auth tokens for OKFN Annotator""" 22 # Replace these with your details 23 consumerKey = 'yourconsumerkey' 24 consumerSecret = 'yourconsumersecret' 23 class AuthTokenGenerator(SimpleItem, PropertyManager): 24 """Generator of auth tokens for OKFN Annotator""" 25 25 26 meta_type = 'AuthTokenGenerator' 27 _properties=({'id':'consumer_key', 'type': 'string', 'mode': 'w'}, 28 {'id':'consumer_secret', 'type': 'string', 'mode': 'w'}, 29 ) 30 31 manage_options = PropertyManager.manage_options + SimpleItem.manage_options 32 26 33 # Only change this if you're sure you know what you're doing 27 CONSUMER_TTL= 8640034 consumerTtl = 86400 28 35 29 def generate_token(self, user_id): 36 def __init__(self, id, consumerKey=None, consumerSecret=None): 37 """init document viewer""" 38 self.id=id 39 self.consumer_key = consumerKey 40 self.consumer_secret = consumerSecret 41 42 def index_html(self, user='anonymous', password=None): 43 """returns authentication token for user""" 44 if self._token_allowed(): 45 token = self._generate_token(user) 46 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") 47 origin = self.REQUEST.getHeader("Origin", None) 48 if origin is not None: 49 self.REQUEST.RESPONSE.setHeader("Access-Control-Allow-Origin", origin) 50 else: 51 self.REQUEST.RESPONSE.setHeader("Access-Control-Allow-Origin", "*") 52 53 self.REQUEST.RESPONSE.setHeader("Access-Control-Allow-Credentials", "true") 54 json.dump(token, self.REQUEST.RESPONSE) 55 else: 56 self.REQUEST.RESPONSE.setStatus('Forbidden') 57 return "SORRY, NOT ALLOWED!" 58 59 def _token_allowed(self, user=None, password=None): 60 # here we should check the login 61 return True 62 63 def _generate_token(self, user_id): 64 #return JSON-token 30 65 issue_time = datetime.datetime.now(UTC).isoformat() 31 token = hashlib.sha256(self.consumer Secret + user_id + issue_time).hexdigest()66 token = hashlib.sha256(self.consumer_secret + user_id + issue_time).hexdigest() 32 67 33 68 return dict( 34 consumerKey=self.consumer Key,69 consumerKey=self.consumer_key, 35 70 authToken=token, 36 71 authTokenIssueTime=issue_time, 37 authTokenTTL= CONSUMER_TTL,72 authTokenTTL=self.consumerTtl, 38 73 userId=user_id 39 74 ) 75 76 def manage_addAuthTokenGeneratorForm(self): 77 """form for adding AuthTokenGenerator""" 78 pt = PageTemplateFile("zpt/manage_addAuthTokenGenerator", globals()).__of__(self) 79 return pt() 80 81 def manage_addAuthTokenGenerator(context, id, consumerKey=None, consumerSecret=None): 82 """ """ 83 context._setObject(id, AuthTokenGenerator(id, consumerKey=consumerKey, consumerSecret=consumerSecret)) 84 return "AuthTokenGenerator Installed: %s" % id -
__init__.py
r486 r521 1 1 import documentViewer 2 2 import MpdlXmlTextServer 3 import AuthTokenGenerator 3 4 4 5 def initialize(context): … … 19 20 ) 20 21 ) 22 23 context.registerClass( 24 AuthTokenGenerator.AuthTokenGenerator, 25 constructors = ( 26 AuthTokenGenerator.manage_addAuthTokenGeneratorForm, 27 AuthTokenGenerator.manage_addAuthTokenGenerator 28 ) 29 ) 30 21 31
Note: See TracChangeset
for help on using the changeset viewer.