Authkit 의이 코드는 무엇을합니까? (이러한 기능과 방법은 어디에 정의됩니까?)

StackOverflow https://stackoverflow.com/questions/2467013

  •  20-09-2019
  •  | 
  •  

문제

나는 노력하고있다 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 *

이는 코드에 갑자기 나타날 수있는 한 가지 방법입니다 (이 관용구가 매우 나쁜 관행 인 이유입니다). 나는 그것이 그 식별자가 갑자기 그리고 설명 할 수없는 구체화 방법인지 확신 할 수 없지만 가능성이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top