本文整理汇总了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;未经允许,请勿转载。 |
请发表评论