2013-11-01 4 views
1

Yii 프레임 워크로 CAS 인증을 구현하는 데 문제가 있습니다. 내가 downloaded the client classes 그리고 모든 프레임 워크를 사용하지 않을 때 모든 것이 작동하지만 Yii 유효성 검사와 통합하려고하면 전혀 작동하지 않는 것 같습니다.CAS 인증 Yii Framework

누구든지 yii로 CAS 유효성 확인을 성공적으로 완료하는 프로세스를 설명해주십시오.

내가/MyApp를/보호/공급 업체 디렉토리에 클라이언트 파일을 넣어, 나는 내 CAS 클래스를 사용하기 위해 내가 방법을 만든 다음

Yii::import('application.vendors.*'); 
require_once('CAS/CAS.php'); 

컨트롤러의 시작에서 다음 줄을 넣어

public function casValidation() 
{ 
    phpCAS::client(CAS_VERSION_2_0, $server, $port, "/cas",false); 
    phpCAS::setNoCasServerValidation(); 
    phpCAS::forceAuthentication(); 

    if(isset($_REQUEST['logout'])) 
    { 
     phpCAS::logout(); 
    } 
} 

그리고 마지막으로 내 index 액션에서 유효성을 검사 할

public function actionIndex() 
{ 
    $this->casValidation(); 
    $this->render('index'); 
} 

그러나 웹 브라우저에서 다음과 같은 오류를 보여줍니다

PHP 경고

포함 (CAS_Client.php가) [function.include] : 열지 못했습니다> 스트림 : 해당 파일이나 디렉토리

C : \ app \ vertrigo \ Vertrigophp52 \ www \ testyii \ framework \ YiiBase.php (427)

Am I 뭔가 빠졌습니까? 일을하려면 어떻게해야합니까?

+0

_ "전혀 작동하지 않는 것 같다"_ 모호한 주장이며 _ "누구나 yii로 CAS 유효성 검사를 성공 적으로 수행하는 프로세스를 설명해주십시오."_ 모호한 기대입니다.) – geomagas

답변

0

마침내 제대로 작동했는데 몇 가지 실수를 저질렀습니다.

우선 require 구문을 사용해서는 안됩니다. 그 이유는 Yii alredy가 아래와 같이 import 메소드를 통해 클래스를로드하기 때문입니다.

Yii::import('application.vendor.CAS.*') 

두 번째 것은 내가 그래서 YII가 존재하지 않는 업체 디렉토리를 찾고 있었다

/* This is wrong */ 
Yii::import('application.vendors.CAS.*') 

대신

/* This is correct */ 
Yii::import('application.vendor.CAS.*') 

을했다,이 수입에 오타가 있었다.

마지막으로 가져 오기 방법을 사용하려면 클래스가 포함 된 파일의 이름이 같아야합니다. 따라서 클래스 이름 사용자 인 경우 Yii가 파일을 성공적으로로드 할 수 있도록 파일 user.php의 이름을 지정해야합니다.