handleRequest() публичный Метод

Handle a request. Given an {@link Auth_OpenID_Request} object, call the appropriate {@link Auth_OpenID_Server} method to process the request and generate a response.
public handleRequest ( Auth_OpenID_Request $request ) : Auth_OpenID_ServerResponse
$request Auth_OpenID_Request An {@link Auth_OpenID_Request} returned by {@link Auth_OpenID_Server::decodeRequest()}.
Результат Auth_OpenID_ServerResponse $response A response object capable of generating a user-agent reply.
Пример #1
0
 /**
  * Receive an incoming request.
  *
  * This function never returns.
  */
 public function receiveRequest()
 {
     $request = $this->server->decodeRequest();
     if (!in_array($request->mode, array('checkid_immediate', 'checkid_setup'), TRUE)) {
         $this->sendResponse($this->server->handleRequest($request));
     }
     $state = array('request' => $request);
     $this->processRequest($state);
 }
Пример #2
0
 /**
  * Receive an incoming request.
  *
  * This function never returns.
  */
 public function receiveRequest()
 {
     SimpleSAML_Utilities::maskErrors(E_NOTICE | E_STRICT);
     $request = $this->server->decodeRequest();
     if (!in_array($request->mode, array('checkid_immediate', 'checkid_setup'), TRUE)) {
         $this->sendResponse($this->server->handleRequest($request));
     }
     $state = array('request' => $request);
     $this->processRequest($state);
 }
Пример #3
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     opApplicationConfiguration::registerJanRainOpenID();
     require_once 'Auth/OpenID/Server.php';
     require_once 'Auth/OpenID/FileStore.php';
     $url = $this->getController()->genUrl('OpenID/index', true);
     $server = new Auth_OpenID_Server(new Auth_OpenID_FileStore(sfConfig::get('sf_cache_dir')), $url);
     $this->getResponse()->setHttpHeader('X-XRDS-Location', $this->getController()->genUrl('OpenID/signonXrds', true));
     $openIDRequest = $server->decodeRequest();
     if (!$openIDRequest) {
         $_SESSION['request'] = null;
         return sfView::SUCCESS;
     }
     $sregRequest = Auth_OpenID_SRegRequest::fromOpenIDRequest($openIDRequest);
     $axRequest = Auth_OpenID_AX_FetchRequest::fromOpenIDRequest($openIDRequest);
     $this->requestedProfiles = $this->createListOfRequestedProfiles($sregRequest, $axRequest);
     $_SESSION['request'] = serialize($openIDRequest);
     if (!empty($openIDRequest->mode) && in_array($openIDRequest->mode, array('checkid_immediate', 'checkid_setup'))) {
         if ($openIDRequest->idSelect()) {
             if ($openIDRequest->mode === 'checkid_immediate') {
                 $response = $openIDRequest->answer(false);
             } else {
                 $this->getRequest()->setMethod(sfWebRequest::GET);
                 $_SERVER['QUERY_STRING'] = http_build_query($openIDRequest->message->toPostArgs());
                 $this->forwardUnless($this->getUser()->isAuthenticated() && $this->getUser()->getMember(), 'member', 'login');
                 $log = Doctrine::getTable('OpenIDTrustLog')->findByOpenID($openIDRequest->trust_root, $this->getUser()->getMemberId());
                 if ($log && $log->is_permanent) {
                     $request->setParameter('trust', '1');
                     $this->forward('OpenID', 'trust');
                 }
                 $this->info = $openIDRequest;
                 return 'Trust';
             }
         } elseif (!$openIDRequest->identity && !$openIDRequest->idSelect()) {
             $this->forward('@error');
         } elseif ($openIDRequest->immediate) {
             $response = $openIDRequest->answer(false, $url);
         } else {
             $this->forwardUnless($this->getUser()->isAuthenticated() && $this->getUser()->getMember(), 'member', 'login');
             $log = Doctrine::getTable('OpenIDTrustLog')->findByOpenID($openIDRequest->trust_root, $this->getUser()->getMemberId());
             if ($log && $log->is_permanent) {
                 $request->setParameter('trust', '1');
                 $this->forward('OpenID', 'trust');
             }
             $this->info = $openIDRequest;
             return 'Trust';
         }
     } else {
         $response = $server->handleRequest($openIDRequest);
     }
     $response = $server->encodeResponse($response);
     return $this->writeResponse($response);
 }