def wrapper(request, *args, **kwargs): data = request.headers authorization = decode_authorization_header(data) if authorization == dict(): error = "Missing required parameter." return json_response({"error": error}, status=400) request_validator = GMGRequestValidator() resource_endpoint = ResourceEndpoint(request_validator) valid, r = resource_endpoint.validate_protected_resource_request( uri=request.url, http_method=request.method, body=request.data, headers=dict(request.headers), ) if not valid: error = "Invalid oauth prarameter." return json_response({"error": error}, status=400) # Fill user if not already token = authorization[u"oauth_token"] request.access_token = AccessToken.query.filter_by(token=token).first() if request.access_token is not None and request.user is None: user_id = request.access_token.actor request.user = LocalUser.query.filter_by(id=user_id).first() return controller(request, *args, **kwargs)
class Authenticator(interfaces.Authenticates): def __init__(self, **conf): """ Construct a concrete object with a set of keyword configuration options. :param **conf: oauth_validator: RequestValidator for oauthlib :raises `talons.exc.BadConfiguration` if configuration options are not valid or conflict with each other. """ oauth_validator = conf.pop('oauth1_validator', None) if not oauth_validator: msg = ("Missing required oauth_validator " "configuration option.") LOG.error(msg) raise exc.BadConfiguration(msg) self.provider = ResourceEndpoint(oauth_validator) self.realms = conf.pop('oauth1_realms', []) def authenticate(self, identity): """ Authenticate user client using oauthlib's ResourceEndopoint """ v, r = self.provider.validate_protected_resource_request( # we use gettattr because we depend on overriden Identity # - other identities can lack these attributes getattr(identity, 'url', None), http_method=getattr(identity, 'method', None), body=getattr(identity, 'stream', None), headers=getattr(identity, 'headers', None), realms=self.realms, ) return bool(v)
def wrapper(request, *args, **kwargs): data = request.headers authorization = decode_authorization_header(data) if authorization == dict(): error = "Missing required parameter." return json_response({"error": error}, status=400) request_validator = GMGRequestValidator() resource_endpoint = ResourceEndpoint(request_validator) valid, request = resource_endpoint.validate_protected_resource_request( uri=request.url, http_method=request.method, body=request.get_data(), headers=dict(request.headers), ) if not valid: error = "Invalid oauth prarameter." return json_response({"error": error}, status=400) return controller(request, *args, **kwargs)
class PistonOAuthAuthentication(BaseAuthentication): def __init__(self): validator = PistonRequestValidator() self.provider = ResourceEndpoint(validator) def authenticate_header(self, request): return 'OAuth realm="API"' def authenticate(self, request): v, r = self.provider.validate_protected_resource_request( **oauthlib_request(request) ) if v: return r.token.user, r.token
def __init__(self, **conf): """ Construct a concrete object with a set of keyword configuration options. :param **conf: oauth_validator: RequestValidator for oauthlib :raises `talons.exc.BadConfiguration` if configuration options are not valid or conflict with each other. """ oauth_validator = conf.pop('oauth1_validator', None) if not oauth_validator: msg = ("Missing required oauth_validator " "configuration option.") LOG.error(msg) raise exc.BadConfiguration(msg) self.provider = ResourceEndpoint(oauth_validator) self.realms = conf.pop('oauth1_realms', [])
def __init__(self): validator = PistonRequestValidator() self.provider = ResourceEndpoint(validator)
def __init__(self, request_validator): RequestTokenEndpoint.__init__(self, request_validator) AuthorizationEndpoint.__init__(self, request_validator) AccessTokenEndpoint.__init__(self, request_validator) ResourceEndpoint.__init__(self, request_validator)
if token != 'crm': app.logger.debug('Failed on validate_access_token') return False return True def validate_realms(self, client_key, token, request, uri=None, realms=None): return True validator = DialerRequestValidator() endpoint = ResourceEndpoint(validator) def oauth_protected(realms=None): def wrapper(f): @functools.wraps(f) def verify_oauth(*args, **kwargs): app.logger.debug('Start verify request') app.logger.debug( 'request.url=%s request.method=%s request.data=%s request.headers=%s realms=%s' % (request.url, request.method, request.form or request.data, request.headers, realms)) v, r = endpoint.validate_protected_resource_request( request.url, http_method=request.method, body=request.form or request.data,