add cadf notifications for oauth
Adds support for cadf notifications for create/update/delete of consumers, request tokens and access tokens. Change-Id: Iaa8e148cde3af881c8b573ab9d27bf366134c865
This commit is contained in:
@@ -59,7 +59,8 @@ class ConsumerCrudV3(controller.V3Controller):
|
||||
@controller.protected()
|
||||
def create_consumer(self, context, consumer):
|
||||
ref = self._assign_unique_id(self._normalize_dict(consumer))
|
||||
consumer_ref = self.oauth_api.create_consumer(ref)
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
consumer_ref = self.oauth_api.create_consumer(ref, initiator)
|
||||
return ConsumerCrudV3.wrap_member(context, consumer_ref)
|
||||
|
||||
@controller.protected()
|
||||
@@ -67,7 +68,8 @@ class ConsumerCrudV3(controller.V3Controller):
|
||||
self._require_matching_id(consumer_id, consumer)
|
||||
ref = self._normalize_dict(consumer)
|
||||
self._validate_consumer_ref(ref)
|
||||
ref = self.oauth_api.update_consumer(consumer_id, ref)
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
ref = self.oauth_api.update_consumer(consumer_id, ref, initiator)
|
||||
return ConsumerCrudV3.wrap_member(context, ref)
|
||||
|
||||
@controller.protected()
|
||||
@@ -89,7 +91,8 @@ class ConsumerCrudV3(controller.V3Controller):
|
||||
payload = {'user_id': user_token_ref.user_id,
|
||||
'consumer_id': consumer_id}
|
||||
_emit_user_oauth_consumer_token_invalidate(payload)
|
||||
self.oauth_api.delete_consumer(consumer_id)
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
self.oauth_api.delete_consumer(consumer_id, initiator)
|
||||
|
||||
def _validate_consumer_ref(self, consumer):
|
||||
if 'secret' in consumer:
|
||||
@@ -138,8 +141,9 @@ class AccessTokenCrudV3(controller.V3Controller):
|
||||
consumer_id = access_token['consumer_id']
|
||||
payload = {'user_id': user_id, 'consumer_id': consumer_id}
|
||||
_emit_user_oauth_consumer_token_invalidate(payload)
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
return self.oauth_api.delete_access_token(
|
||||
user_id, access_token_id)
|
||||
user_id, access_token_id, initiator)
|
||||
|
||||
@staticmethod
|
||||
def _get_user_id(entity):
|
||||
@@ -245,9 +249,11 @@ class OAuthControllerV3(controller.V3Controller):
|
||||
raise exception.Unauthorized(message=msg)
|
||||
|
||||
request_token_duration = CONF.oauth1.request_token_duration
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
token_ref = self.oauth_api.create_request_token(consumer_id,
|
||||
requested_project_id,
|
||||
request_token_duration)
|
||||
request_token_duration,
|
||||
initiator)
|
||||
|
||||
result = ('oauth_token=%(key)s&oauth_token_secret=%(secret)s'
|
||||
% {'key': token_ref['id'],
|
||||
@@ -324,8 +330,10 @@ class OAuthControllerV3(controller.V3Controller):
|
||||
raise exception.Unauthorized(message=msg)
|
||||
|
||||
access_token_duration = CONF.oauth1.access_token_duration
|
||||
initiator = notifications._get_request_audit_info(context)
|
||||
token_ref = self.oauth_api.create_access_token(request_token_id,
|
||||
access_token_duration)
|
||||
access_token_duration,
|
||||
initiator)
|
||||
|
||||
result = ('oauth_token=%(key)s&oauth_token_secret=%(secret)s'
|
||||
% {'key': token_ref['id'],
|
||||
|
||||
@@ -158,32 +158,41 @@ class Manager(manager.Manager):
|
||||
def __init__(self):
|
||||
super(Manager, self).__init__(CONF.oauth1.driver)
|
||||
|
||||
@notifications.created(_CONSUMER)
|
||||
def create_consumer(self, consumer_ref):
|
||||
return self.driver.create_consumer(consumer_ref)
|
||||
def create_consumer(self, consumer_ref, initiator=None):
|
||||
ret = self.driver.create_consumer(consumer_ref)
|
||||
notifications.Audit.created(self._CONSUMER, ret['id'], initiator)
|
||||
return ret
|
||||
|
||||
@notifications.updated(_CONSUMER)
|
||||
def update_consumer(self, consumer_id, consumer_ref):
|
||||
return self.driver.update_consumer(consumer_id, consumer_ref)
|
||||
def update_consumer(self, consumer_id, consumer_ref, initiator=None):
|
||||
ret = self.driver.update_consumer(consumer_id, consumer_ref)
|
||||
notifications.Audit.updated(self._CONSUMER, consumer_id, initiator)
|
||||
return ret
|
||||
|
||||
@notifications.deleted(_CONSUMER)
|
||||
def delete_consumer(self, consumer_id):
|
||||
return self.driver.delete_consumer(consumer_id)
|
||||
def delete_consumer(self, consumer_id, initiator=None):
|
||||
ret = self.driver.delete_consumer(consumer_id)
|
||||
notifications.Audit.deleted(self._CONSUMER, consumer_id, initiator)
|
||||
return ret
|
||||
|
||||
@notifications.created(_ACCESS_TOKEN)
|
||||
def create_access_token(self, request_id, access_token_duration):
|
||||
return self.driver.create_access_token(request_id,
|
||||
access_token_duration)
|
||||
def create_access_token(self, request_id, access_token_duration,
|
||||
initiator=None):
|
||||
ret = self.driver.create_access_token(request_id,
|
||||
access_token_duration)
|
||||
notifications.Audit.created(self._ACCESS_TOKEN, ret['id'], initiator)
|
||||
return ret
|
||||
|
||||
@notifications.deleted(_ACCESS_TOKEN, resource_id_arg_index=2)
|
||||
def delete_access_token(self, user_id, access_token_id):
|
||||
return self.driver.delete_access_token(user_id, access_token_id)
|
||||
def delete_access_token(self, user_id, access_token_id, initiator=None):
|
||||
ret = self.driver.delete_access_token(user_id, access_token_id)
|
||||
notifications.Audit.deleted(self._ACCESS_TOKEN, access_token_id,
|
||||
initiator)
|
||||
return ret
|
||||
|
||||
@notifications.created(_REQUEST_TOKEN, resource_id_arg_index=2)
|
||||
def create_request_token(self, consumer_id, requested_project,
|
||||
request_token_duration):
|
||||
return self.driver.create_request_token(
|
||||
request_token_duration, initiator=None):
|
||||
ret = self.driver.create_request_token(
|
||||
consumer_id, requested_project, request_token_duration)
|
||||
notifications.Audit.created(self._REQUEST_TOKEN, ret['id'],
|
||||
initiator)
|
||||
return ret
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
|
||||
Reference in New Issue
Block a user