2014-09-05 2 views
0

아파치에서 두 개의 장고 사이트를 실행 중입니다. 하나는 API의 데모 페이지이므로 HTTP basic auth로 인증 된 다른 API 호출을 만듭니다. 나도 같은 사이트에서 같은 일을 시도했지만 같은 문제가 있었다.같은 아파치 서버에 두 개의 Django 사이트 - 403 권한이 부여 된 사이의 기본 인증

요청이있을 때 Apache는 403 오류 메시지/페이지를 제공합니다.

다음은 필요한 부분은 API 서버에 대한 가상 호스트입니다 :

<VirtualHost 12.34.567.890:80> 
    ServerAdmin [email protected] 
    ServerName dev.example.com 
    ServerAlias dev.example.com 

    ErrorLog /var/log/apache2/lab-error.log 

    WSGIScriptAlias//webapps/lab/lab-wsgi.py 

    WSGIPassAuthorization On 

    <Directory /webapps/lab> 
     <Files lab-wsgi.py> 
      Order deny,allow 
      Allow from all 
     </Files> 
    </Directory> 
</VirtualHost> 

그리고 이것은 데모 사이트 가상 호스트입니다 :

<VirtualHost 12.34.567.890:80> 
    ServerAdmin [email protected] 
    ServerName dvdemo.example.com 
    ServerAlias dvdemo.example.com 

    ErrorLog /var/log/apache2/demo-error.log 

    WSGIScriptAlias//webapps/lab/demo/Demo/wsgi.py 

    WSGIPassAuthorization On 

    <Directory /webapps/lab/demo/Demo> 
     <Files wsgi.py> 
      Order allow,deny 
      Allow from all 
     </Files> 
    </Directory> 
</VirtualHost> 

것 같다, 그 나는 WSGIPassAuthorization On의가 있지만, 기본 인증은 아파치 (아파치 403 페이지는 인증 실패시 Django의 JSON 오류와 반대 됨)에서 처리됩니다.

로컬 컴퓨터에서 API 서버로 동일한 요청을하면 작동합니다.

무엇이 잘못되었거나 앞으로 조사해야 할 사항에 대한 제안 사항이 있습니까? 감사합니다

명확화를 위해 편집 : API 서버에 데모 페이지/사이트를 만들려고 시도하는 OAuth2 API가 있습니다. cURL 또는 다른 서버를 통해 API를 작성하면 API 요청이 성공하고 API와 동일한 서버 (다른 가상 호스트 또는 동일한 가상 호스트)에서 요청을 보낸 경우에만 문제가 발생합니다.

답변

0

Files 지시문에 하위 디렉토리를 가질 수 없습니다. 사용 :

<Directory /webapps/lab/demo/Demo> 
    <Files wsgi.py> 
     Order allow,deny 
     Allow from all 
    </Files> 
</Directory> 

WSGIPassAuthorization은 HTTP 기본 인증에 필요한 자격 증명을 전달하기위한 것입니다. Django가 폼 기반 인증을 사용하기 때문에 일반적으로 Django가 필요로하는 것은 거의 없습니다. Django에서 HTTP Basic 인증을 위해 뭔가를 사용하고 있습니까? HTTP 기본 인증을 처리 할 위치를 명확히하십시오.

+0

예, 장고는 확실히 HTTP 기본 인증을 사용하고 있습니다. API 서버에는 데모 페이지/사이트를 만들려고하는 OAuth2 API가 있습니다. 내가 말했듯이, 그것은 동일한 서버를 제외하고 어느 곳에서나 API 엔드 포인트를 요청합니다. 또한 내가 언급 한 것처럼 Files 지시문을 수정하려고 시도했지만, 단지 운이 좋았습니다. – chrisg