2014-12-02 1 views
0

특정 디렉토리에 이미 예외가 있습니다 (webroot). 제대로 작동합니다.특정 컨트롤러에서 HTTP 인증을 제외하십시오. <strong>.htaccess</strong> 파일을 통해 HTTP 보호가있는 <strong>CakePHP 2</strong>에서 응용 프로그램을 만들었습니다.

AuthType Basic 
AuthName "My Application" 
AuthUserFile /my/application/path/.htpasswd 
Require valid-user 

SetEnvIf Request_URI "files/photos/" allow 

Order allow,deny 
Allow from env=allow 
Satisfy any 

는 그러나 이제 특정 컨트롤러보기입니다 특정 URL에 대한 예외가 필요합니다. 나는 단순히이 줄을 추가하려했지만 아직 작동하지 않고 사용자 이름과 암호를 요청했습니다.

SetEnvIf Request_URI "users/confirmation/" allow 

나는 UsersControllerconfirmation() 방법이있다. 요점은 하나는 물리적 경로이고 다른 하나는 "가상"이라는 것입니다.

이 문제를 해결하는 방법에 대한 의견이 있으십니까?

답변

0

는 인증에 의해 무시되는 : 다음

SetEnvIf Request_URI "files/photos/" noauth=1 
SetEnvIf Request_URI "users/confirmation/*" noauth=1 

과의 REDIRECT_ 접두사로 예외를 추가 :

Allow from env=REDIRECT_noauth 
0

cakephp Auth를 사용하는 경우 컨트롤러의 일부 작업을 인증에서 제외 할 수 있습니다. 아래의 줄을 특정 컨트롤러에 입력하십시오. UsersController.()에서 허용 작성

public function beforeFilter() 
 
\t { 
 
\t \t parent::beforeFilter(); 
 
\t \t $this->Auth->allow('register','forgot_password','reset_password','password','login','logout'); 
 
\t }

조치에는 인증이없는 후에도 액세스 할 수 있습니다. 전체 컨트롤러를 허용하려면 아무 것도하지 않습니다. 예 : $ this-> Auth-> allow(); 경로를 포함하는 라인을 변경하여 해결

+0

불행하게도이 내 질문에 대답하지 않습니다, 왜냐하면 나는'.htaccess' 파일을 통해 HTTP 인증을 사용하고 Auth 라이브러리에서는 직접 사용하지 않기 때문입니다. 어쨌든, 답장을 보내 주셔서 감사합니다. –

+0

확인. 나는 이해했다. 나는 해결책을 찾으려고 노력할 것이다. 고맙습니다. – BCoder