0

어떤 이유로 그 응용 프로그램이 해당보기에 첨부 된 사용 권한을 가지고 있지만 로그인을하면 해당 응용 프로그램에 의해 리디렉션됩니다. 그러나 사용 권한을 제거해도 문제가 없습니다. 나는 AuthTktAuthenticationPolicy를 사용하고 난 이미 다음 콜백을 추가 시도 :권한을 추가했지만 승격이 아닌 앱을 내게주는 이유는 무엇입니까?

def principalFinder(username, request): 
    return [Authenticated] 

을하지만 아무것도 변경하지 않았다. 그것의 문맥으로 클래스 myAERO 사용 당신이 볼 수있는

@view_config(route_name='test', context=myAERO, permission='editAln') 
def test(request): 
    return Response(request.authenticated_userid) 

:이 문제의보기 지금

class myAERO(): 
    __acl__ = [ 
    (Allow, Authenticated, 'editAln') 
    ] 
    def __init__(self, request): 
     self.request = request 

를, 인증 아무 문제가없는 것 같다 내가 제거하는 경우 때문에 permission = 'editAln'을 @view_config() 데코레이터에서 가져 오면 내 앱은 로그인하는 데 사용한 사용자 이름을 표시합니다.

나는 이것에 절대적으로 의아해합니다. 내가 금지 된 403을 이해할 수는 있지만, 나는 404 상태 코드를 계속 얻는 이유를 이해하지 못한다! 나는 다소 관련이있는 것으로 보이는 this question을 발견했지만, 당신이 볼 수 있듯이 나는 name 속성을 전혀 사용하지 않으므로 실제로 도움이되지 않았습니다. 이것은 피라미드를 처음 사용하고 내 응용 프로그램 (인증 된 사용자의 사용자 이름을 기반으로하는 JSON 응답을 사용하는 XHR POST 요청에 응답)을 사용하여 수행하려고하는 작업이 내 하드에서 그렇게 어렵지 않아야하므로 내 마음 속에서 누군가 약간 더 많은 피라미드 경험을 통해이 사실을 이해할 수 있습니다.

답변

0

각 개별보기의 컨텍스트로 설정하는 대신 myAERO 클래스를 루트 팩터 리로 설정하여이 문제를 해결했습니다. Michael Merickel's auth demo에서 아이디어를 얻었습니다. 솔직히 나는 이것이 왜 작동하는지 잘 모른다. 그래서 설명하는 이유는 왜 아직도 많이 감사 할 것이냐.

EDIT : 더 읽기를 한 후에, 나는 그것이 순간적으로 파악하려고 노력하고있는 전체 URL Dispatch 및 Traversal과 관련이 있다고 생각합니다.

관련 문제