• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python authentication.get_authorization_header函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中rest_framework.authentication.get_authorization_header函数的典型用法代码示例。如果您正苦于以下问题:Python get_authorization_header函数的具体用法?Python get_authorization_header怎么用?Python get_authorization_header使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了get_authorization_header函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: process_view

    def process_view(self, request, callback, callback_args, callback_kwargs):
        view_class = getattr(request.resolver_match.func, 'view_class', None)
        if hasattr(view_class, 'conditional_forward'):
            app = get_current_app(request)
            request.matched_rule, request.matched_params = find_rule(
                request, app)
            if (request.matched_rule and request.matched_rule.is_forward
                and request.method not in ('GET', 'HEAD', 'OPTIONS', 'TRACE')):
                # We are forwarding the request so the CSRF is delegated
                # to the application handling the forwarded request.
                #pylint:disable=protected-access
                request._dont_enforce_csrf_checks = True
                LOGGER.debug("dont enforce csrf checks on %s %s",
                    request.method, request.path)

        auth = get_authorization_header(request).split()
        if auth and auth[0].lower() in [b'basic', b'bearer']:
            # We need to support API calls from the command line.
            #pylint:disable=protected-access
            request._dont_enforce_csrf_checks = True
            LOGGER.debug("dont enforce csrf checks on %s %s because"\
                " we have an authorization header",
                request.method, request.path)

        return super(RulesMiddleware, self).process_view(
            request, callback, callback_args, callback_kwargs)
开发者ID:djaodjin,项目名称:djaodjin-rules,代码行数:26,代码来源:middleware.py


示例2: authenticate

    def authenticate(self, request):
        auth = get_authorization_header(request).split()

        if not auth or auth[0].lower() != b'jwt':
            return None

        if len(auth) == 1:
            msg = 'Invalid token header. No credentials provided.'
            log.warn('Invalid token header: "%s" No credentials provided.', auth)
            raise AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = 'Invalid token header. Token string should not contain spaces.'
            log.warn('Invalid token header: "%s" Token string should not contain spaces.', auth)
            raise AuthenticationFailed(msg)

        token = auth[1]
        try:
            data = jwt.decode(token, settings.FACES_SECRET)
        except jwt.InvalidTokenError as e:
            raise AuthenticationFailed(e)

        user_id = data['user_id']

        try:
            user = User.objects.get(id=user_id)
        except User.DoesNotExist:
            return AnonymousUser(), token

        return user, data
开发者ID:bartoszhernas,项目名称:ecommhack.api,代码行数:29,代码来源:authentication.py


示例3: authenticate

    def authenticate(self, request):
        """
        Raises an exception for an expired token, or returns two-tuple of
        (user, project) if authentication succeeds, or None otherwise.
        """
        request.oauth2_error = getattr(request, "oauth2_error", {})
        access_token = None
        try:
            auth = get_authorization_header(request).split()
            token = auth[1].decode()
            access_token = AccessToken.objects.get(token=token)
        except Exception:
            pass

        if access_token and access_token.is_expired():
            raise exceptions.AuthenticationFailed("Expired token.")

        auth = super(CustomOAuth2Authentication, self).authenticate(request)

        if auth:
            project = OAuth2DataRequestProject.objects.get(
                application=auth[1].application
            )
            return (auth[0], project)

        return auth
开发者ID:PersonalGenomesOrg,项目名称:open-humans,代码行数:26,代码来源:api_authentication.py


示例4: authenticate

    def authenticate(self, request):
        auth = get_authorization_header(request).split()
        internal_service = get_internal_header(request)

        try:
            internal_service = internal_service.decode()
        except UnicodeError:
            msg = ('Invalid internal_service header. '
                   'internal_service string should not contain invalid characters.')
            raise exceptions.AuthenticationFailed(msg)

        if internal_service not in settings.INTERNAL_SERVICES:
            return None

        if not auth or auth[0].lower() != self.keyword.lower().encode():
            return None

        if len(auth) == 1:
            msg = 'Invalid token header. No credentials provided.'
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = 'Invalid token header. Token string should not contain spaces.'
            raise exceptions.AuthenticationFailed(msg)

        try:
            token = auth[1].decode()
        except UnicodeError:
            msg = 'Invalid token header. Token string should not contain invalid characters.'
            raise exceptions.AuthenticationFailed(msg)

        return self.authenticate_credentials(token)
开发者ID:ttsvetanov,项目名称:polyaxon,代码行数:31,代码来源:authentication.py


示例5: authenticate

    def authenticate(self, request):

        auth = authentication.get_authorization_header(request).split()

        if not auth or auth[0].lower() != self.keyword.lower().encode():
            return None

        if len(auth) == 1:
            msg = _("Invalid token header. No credentials provided.")
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = _("Invalid token header." " Token string should not contain spaces.")
            raise exceptions.AuthenticationFailed(msg)

        try:
            token = auth[1].decode()
        except UnicodeError:
            msg = _("Invalid token header." " Token string should not contain invalid characters.")
            raise exceptions.AuthenticationFailed(msg)

        try:
            connection = models.Connection.objects.get(token=token)
        except:
            raise exceptions.AuthenticationFailed(_("Invalid token."))

        return (AnonymousUser(), connection)
开发者ID:impactlab,项目名称:oeem-energy-datastore,代码行数:26,代码来源:views.py


示例6: authenticate

    def authenticate(self, request):
        """
        Returns a `User` if a correct username and password have been supplied
        using HTTP Basic authentication.  Otherwise returns `None`.
        """
        auth = get_authorization_header(request).split()

        if not auth or auth[0].lower() != b'basic':
            return None

        if len(auth) == 1:
            msg = 'Invalid basic header. No credentials provided.'
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = 'Invalid basic header. Credentials string should not contain spaces.'
            raise exceptions.AuthenticationFailed(msg)

        try:
            auth_parts = base64.b64decode(auth[1]).decode(HTTP_HEADER_ENCODING).partition(':')
        except (TypeError, UnicodeDecodeError):
            msg = 'Invalid basic header. Credentials not correctly base64 encoded'
            raise exceptions.AuthenticationFailed(msg)

        userid, password = auth_parts[0], auth_parts[2]
        return self.authenticate_credentials(userid, password)
开发者ID:marcelometal,项目名称:GloboNetworkAPI,代码行数:25,代码来源:authentication.py


示例7: authenticate

	def authenticate(self,request):
		auth=get_authorization_header(request).split()
		
		if not auth:
			msg=_('No token header.')
			raise exceptions.AuthenticationFailed(msg) 
			# return None	
		

		if auth[0].lower()!= b'token':
			msg=_('Invalid token header. Add keyword "Token" before token string.')
			raise exceptions.AuthenticationFailed(msg) 
			# return None	
			
		if len(auth)==1:
			msg=_('Invalid token header. No credentials provided')
			raise exceptions.AuthenticationFailed(msg)

		elif len(auth) > 2:
			msg=_('Invalid token header.Token string should not contain spaces.')
			raise exceptions.AuthenticationFailed(msg)
		
		try:
			token = auth[1].decode()
			
		except UnicodeError:
			msg = _('Invalid token header. Token string should not contain invalid characters.')
			raise exceptions.AuthenticationFailed(msg)
		

		return self.authenticate_credentials(token)
开发者ID:mohitmehta93,项目名称:eventify,代码行数:31,代码来源:authentication.py


示例8: authenticate

    def authenticate(self, request):
        """
        Returns two-tuple of (user, token) if authentication succeeds,
        or None otherwise.
        """

        auth = get_authorization_header(request).split()

        if len(auth) == 1:
            msg = 'Invalid bearer header. No credentials provided.'
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = 'Invalid bearer header. Token string should not contain spaces.'
            raise exceptions.AuthenticationFailed(msg)

        if auth and auth[0].lower() == b'bearer':
            access_token = auth[1]
        elif 'access_token' in request.POST:
            access_token = request.POST['access_token']
        elif 'access_token' in request.GET and self.allow_query_params_token:
            access_token = request.GET['access_token']
        else:
            return None

        return self.authenticate_credentials(request, access_token)
开发者ID:jlafon,项目名称:django-rest-framework-oauth,代码行数:25,代码来源:authentication.py


示例9: authenticate

    def authenticate(self, request):
        """
        Returns a two-tuple of `User` and token if a valid signature has been
        supplied using JWT-based authentication.  Otherwise returns `None`.
        """
        auth = get_authorization_header(request).split()

        if not auth or auth[0].lower() != b'jwt':
            return None

        if len(auth) == 1:
            msg = 'Invalid JWT header. No credentials provided.'
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = ('Invalid JWT header. Credentials string '
                   'should not contain spaces.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            payload = jwt_decode_handler(auth[1])
        except jwt.ExpiredSignature:
            msg = 'Signature has expired.'
            raise exceptions.AuthenticationFailed(msg)
        except jwt.DecodeError:
            msg = 'Error decoding signature.'
            raise exceptions.AuthenticationFailed(msg)

        user = self.authenticate_credentials(payload)

        return (user, auth[1])
开发者ID:spenthil,项目名称:django-rest-framework-jwt,代码行数:30,代码来源:authentication.py


示例10: authenticate

	def authenticate( self, request ):
		auth = get_authorization_header( request ).split()
		if not auth:
			return None
		token_type = auth[0].decode().lower()
		if token_type == 'test_token':
			token_type = 'test'
		elif token_type == 'token':
			token_type = ''
		else:
			return None

		if len( auth ) == 1:
			msg = _( 'Invalid token header. No credentials provided.' )
			raise exceptions.AuthenticationFailed( msg )
		elif len( auth ) > 2:
			msg = _( 'Invalid token header. Token string should not contain spaces.' )
			raise exceptions.AuthenticationFailed( msg )

		try:
			token = auth[1].decode()
		except UnicodeError:
			msg = _( 'Invalid token header. Token string should not contain invalid characters.' )
			raise exceptions.AuthenticationFailed( msg )

		return self.authenticate_credentials( token, token_type )
开发者ID:dem4ply,项目名称:yacatecuhtli,代码行数:26,代码来源:authentication.py


示例11: register_by_access_token

def register_by_access_token(request, backend):
    uri=''
    strategy = load_strategy(request)
    backend = load_backend(strategy, backend, uri)
    # Split by spaces and get the array
    auth = get_authorization_header(request).split()

    if not auth:
        msg= 'No auth provided'
        return msg


    if not auth or auth[0].lower() != b'bearer':
        msg = 'No token header provided.'
        return msg

    if len(auth) == 1:
        msg = 'Invalid token header. No credentials provided.'
        return msg

    access_token = auth[1].decode(encoding='UTF-8')

    user = backend.do_auth(access_token)

    return user
开发者ID:cloudsan,项目名称:Temperature-Sensor-Abu-Dhabi,代码行数:25,代码来源:views.py


示例12: authenticate

    def authenticate(self, request):
        auth = get_authorization_header(request).split()
        authenticate_header = self.authenticate_header(request=request)

        if not auth or smart_text(auth[0].lower()) != authenticate_header.lower():
            return None

        if len(auth) == 1:
            msg = _('Invalid token header. No credentials provided.')
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = _('Invalid token header. Token string should not contain spaces.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            token = auth[1].decode()
        except UnicodeError:
            msg = _('Invalid token header. Token string should not contain invalid characters.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            payload = decode_jwt_token(token=token)
        except jwt.exceptions.ExpiredSignature:
            msg = _('Signature has expired.')
            raise exceptions.AuthenticationFailed(msg)
        except jwt.exceptions.DecodeError:
            msg = _('Error decoding signature.')
            raise exceptions.AuthenticationFailed(msg)
        except jwt.exceptions.InvalidKeyError:
            msg = _('Unauthorized token signing key.')
            raise exceptions.AuthenticationFailed(msg)
        except jwt.exceptions.InvalidTokenError:
            raise exceptions.AuthenticationFailed()

        return self.authenticate_credentials(payload=payload)
开发者ID:namespace-ee,项目名称:django-rest-framework-sso,代码行数:35,代码来源:authentication.py


示例13: authenticate

    def authenticate(self, request):
        auth = authentication.get_authorization_header(request).split()

        if not auth or auth[0].lower() != b'apikey':
            # check for URL parameter authentication
            username = request.GET.get('username')
            key = request.GET.get('api_key')
            if username and key:
                return self.authenticate_credentials(username, key)
            return None

        if len(auth) == 1:
            msg = 'Invalid token header. No credentials provided.'
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = 'Invalid token header. Token string should not contain spaces.'
            raise exceptions.AuthenticationFailed(msg)

        try:
            username, key = auth[1].decode('utf-8').split(':')
        except AttributeError:
            username, key = auth[1].split(':')
        except ValueError:
            raise exceptions.AuthenticationFailed('Invalid username token pair')

        return self.authenticate_credentials(username, key)
开发者ID:erikcw,项目名称:tasty_rest_framework,代码行数:26,代码来源:authentication.py


示例14: authenticate

    def authenticate(self, request):
        auth = get_authorization_header(request).split()

        if not auth:
            return None
        if len(auth) == 1:
            msg = "Invalid swr header." \
                "No credentials provided."
            raise AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = "Invalid swr header." \
                "Id string should not contain spaces."
            raise AuthenticationFailed(msg)

        try:
            element_pk = int(auth[1].decode())
            if auth[0].lower() == b'channel':
                return self.authenticate_channel(element_pk)
            elif auth[0].lower() == b'mount':
                return self.authenticate_mount(element_pk)
            elif auth[0].lower() == b'recording':
                return self.authenticate_recording(element_pk)
            else:
                return None
        except UnicodeError:
            msg = "Invalid swr header." \
                "Id string should not contain invalid characters."
            raise AuthenticationFailed(msg)
        except ValueError:
            msg = "Invalid swr header." \
                "Id is not a valid number."
            raise AuthenticationFailed(msg)
开发者ID:fcarp,项目名称:simple_webradio,代码行数:32,代码来源:authentication.py


示例15: authenticate

    def authenticate(self, request):
        auth = authentication.get_authorization_header(request).split()
        if not auth or auth[0].lower() != self.keyword.lower().encode():
            return None

        if len(auth) == 1:
            msg = _('Invalid signature header. No credentials provided.')
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = _('Invalid signature header. Signature '
                    'string should not contain spaces.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            sign = auth[1].decode().split(':')
            if len(sign) != 2:
                msg = _('Invalid signature header. '
                        'Format like AccessKeyId:Signature')
                raise exceptions.AuthenticationFailed(msg)
        except UnicodeError:
            msg = _('Invalid signature header. '
                    'Signature string should not contain invalid characters.')
            raise exceptions.AuthenticationFailed(msg)

        access_key_id = sign[0]
        try:
            uuid.UUID(access_key_id)
        except ValueError:
            raise exceptions.AuthenticationFailed('Access key id invalid')
        request_signature = sign[1]

        return self.authenticate_credentials(
            request, access_key_id, request_signature
        )
开发者ID:jiaxiangkong,项目名称:jumpserver,代码行数:34,代码来源:api.py


示例16: delete

    def delete(self, request, *args, **kwargs):
        """Delete auth token when `delete` request was issued."""
        # Logic repeated from DRF because one cannot easily reuse it
        auth = get_authorization_header(request).split()

        if not auth or auth[0].lower() != b'token':
            return response.Response(status=status.HTTP_400_BAD_REQUEST)

        if len(auth) == 1:
            msg = 'Invalid token header. No credentials provided.'
            return response.Response(msg, status=status.HTTP_400_BAD_REQUEST)
        elif len(auth) > 2:
            msg = 'Invalid token header. Token string should not contain spaces.'
            return response.Response(msg, status=status.HTTP_400_BAD_REQUEST)

        try:
            token = self.model.objects.get(key=auth[1])
        except self.model.DoesNotExist:
            pass
        else:
            token.delete()
            signals.user_logged_out.send(
                type(self),
                user=token.user,
                request=request,
            )
        return response.Response(status=status.HTTP_204_NO_CONTENT)
开发者ID:EEtoJava,项目名称:django-user-management,代码行数:27,代码来源:views.py


示例17: get_jwt_value

    def get_jwt_value(self, request):
        auth = get_authorization_header(request).split()
        auth_header_prefix = api_settings.JWT_AUTH_HEADER_PREFIX.lower()

        if not auth or smart_text(auth[0].lower()) != auth_header_prefix:
            return None

        if len(auth) == 1:
            msg = _('Invalid Authorization header. No credentials provided.')
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = _('Invalid Authorization header. Credentials string '
                    'should contain no spaces.')
            raise exceptions.AuthenticationFailed(msg)

        jwt_value = auth[1]

        try:
            payload = jwt_decode_handler(jwt_value)
        except jwt.ExpiredSignature:
            msg = _('Signature has expired.')
            raise exceptions.AuthenticationFailed(msg)
        except jwt.DecodeError:
            msg = _('Error decoding signature.')
            raise exceptions.AuthenticationFailed(msg)
        except jwt.InvalidTokenError:
            raise exceptions.AuthenticationFailed()

        return payload
开发者ID:ssaavedra,项目名称:drf-jwt-knox,代码行数:29,代码来源:auth.py


示例18: authenticate

    def authenticate(self, request):
        auth = get_authorization_header(request).split()

        # Validation process: Don't allow the not containing token
        '''
        if not auth or auth[0].lower() != b'token':
            msg = _('Invalid token header. No credentials provided.')
            raise exceptions.AuthenticationFailed(msg)
        '''
        if not auth or auth[0].lower() != b'token':
            return None

        if len(auth) == 1:
            msg = _('Invalid token header. No credentials provided.')
            raise exceptions.AuthenticationFailed(msg)
        elif len(auth) > 2:
            msg = _('Invalid token header. Token string should not contain spaces.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            token = auth[1].decode()
        except UnicodeError:
            msg = _('Invalid token header. Token string should not contain invalid characters.')
            raise exceptions.AuthenticationFailed(msg)

        return self.authenticate_credentials(token)
开发者ID:TonyPythoneer,项目名称:django-lab,代码行数:26,代码来源:auth.py


示例19: authenticate

 def authenticate(self, request):
     """
     Perform the actual authentication.
     
     Note that the exception raised is always the same. This is so that we
     don't leak information about in/valid keyIds and other such useful
     things.
     """
     auth_header = authentication.get_authorization_header(request)
     if not auth_header or len(auth_header) == 0:
         return None
     
     method, fields = utils.parse_authorization_header(auth_header)
     
     # Ignore foreign Authorization headers.
     if method.lower() != 'signature':
         return None
     
     # Verify basic header structure.
     if len(fields) == 0:
         raise FAILED
     
     # Ensure all required fields were included.
     if len(set(("keyid","algorithm","signature")) - set(fields.keys())) > 0:
         raise FAILED
     
     # Fetch the secret associated with the keyid
     user, secret = self.fetch_user_data(
         fields["keyid"],
         algorithm=fields["algorithm"]
         )
     
     if not (user and secret):
         raise FAILED
     
     # Gather all request headers and translate them as stated in the Django docs:
     # https://docs.djangoproject.com/en/1.6/ref/request-response/#django.http.HttpRequest.META
     headers = {}
     for key in request.META.keys():
         if key.startswith("HTTP_") or \
             key in ("CONTENT_TYPE", "CONTENT_LENGTH"):
             
             header = key[5:].lower().replace('_', '-')
             headers[header] = request.META[key]
     
     # Verify headers
     hs = HeaderVerifier(
         headers,
         secret,
         required_headers=self.required_headers,
         method=request.method.lower(),
         path=request.get_full_path()
         )
     
     # All of that just to get to this.
     if not hs.verify():
         raise FAILED            
     
     return (user, fields["keyid"])
开发者ID:Jollisoft,项目名称:drf-httpsig,代码行数:59,代码来源:authentication.py


示例20: logout

def logout(request):
    auth = get_authorization_header(request).split()
    try:
        token = auth[1].decode()
    except UnicodeError:
        return

    cache.delete(token)
开发者ID:kriberg,项目名称:stationspinner,代码行数:8,代码来源:authentication.py



注:本文中的rest_framework.authentication.get_authorization_header函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python compat.apply_markdown函数代码示例发布时间:2022-05-27
下一篇:
Python responses.stop函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap