Authkit 의이 코드는 무엇을합니까? (이러한 기능과 방법은 어디에 정의됩니까?)
문제
나는 노력하고있다 Authkit에 대한 내 인증 방법을 구현하십시오 그리고 내장 된 방법 중 일부가 어떻게 작동하는지 알아 내려고 노력하고 있습니다. 특히, 나는 어떻게 업데이트하는 방법을 알아 내려고 노력하고 있습니다. REMOTE_USER
~을 위한 environ
바르게.
이것이 바로 내부에서 처리되는 방법입니다 authkit.authenticate.basic
그러나 그것은 꽤 혼란 스럽습니다. 어디에서나 찾을 수 없습니다 REMOTE_USER
그리고 AUTH_TYPE
정의됩니다. 여기에 이상한 일이 일어나고 있다면 무엇입니까?
def __call__(self, environ, start_response):
environ['authkit.users'] = self.users
result = self.authenticate(environ)
if isinstance(result, str):
AUTH_TYPE.update(environ, 'basic')
REMOTE_USER.update(environ, result)
return self.application(environ, start_response)
실제로 정의를 찾을 수없는 이와 같은 모든 대문자가 많이 있습니다. 예를 들어, 어디에 AUTHORIZATION
아래에서 나옵니다 :
def authenticate(self, environ):
authorization = AUTHORIZATION(environ)
if not authorization:
return self.build_authentication()
(authmeth, auth) = authorization.split(' ',1)
if 'basic' != authmeth.lower():
return self.build_authentication()
auth = auth.strip().decode('base64')
username, password = auth.split(':',1)
if self.authfunc(environ, username, password):
return username
return self.build_authentication()
나는 아마도 내가 environ
DITT, 그러나 여기에 정말 이상한 일이있을 수 있습니다.
해결책
그 출처를보고 나는 그것이 (사악한)
from paste.httpheaders import *
이는 코드에 갑자기 나타날 수있는 한 가지 방법입니다 (이 관용구가 매우 나쁜 관행 인 이유입니다). 나는 그것이 그 식별자가 갑자기 그리고 설명 할 수없는 구체화 방법인지 확신 할 수 없지만 가능성이 있습니다.
제휴하지 않습니다 StackOverflow