6 from tlslite.utils import keyfactory
8 from django.conf import settings
11 class SignatureMethod_RSA_SHA1(oauth.SignatureMethod):
14 def signing_base(self, request, consumer, token):
15 if not hasattr(request, 'normalized_url') or request.normalized_url is None:
16 raise ValueError("Base URL for request is not set.")
19 oauth.escape(request.method),
20 oauth.escape(request.normalized_url),
21 oauth.escape(request.get_normalized_parameters()),
24 key = '%s&' % oauth.escape(consumer.secret)
26 key += oauth.escape(token.secret)
30 def sign(self, request, consumer, token):
31 """Builds the base signature string."""
32 key, raw = self.signing_base(request, consumer, token)
34 module_dir = os.path.dirname(__file__) # get current directory
35 with open(module_dir + '/rsa.pem', 'r') as f:
37 privateKeyString = data.strip()
38 privatekey = keyfactory.parsePrivateKey(privateKeyString)
40 signature = privatekey.hashAndSign(raw)
41 return base64.b64encode(signature)
45 module_dir = os.path.dirname(__file__) # get current directory
46 with open(module_dir + '/rsa.pem', 'r') as f:
50 'access_token': user.userprofile.oauth_token,
51 'access_token_secret': user.userprofile.oauth_secret,
52 'consumer_key': settings.OAUTH_CONSUMER_KEY,
56 return JIRA(server=settings.JIRA_URL, oauth=oauth_dict)