lib/Disco.php
public function handleRequest()
    {
        // test if user has selected an idp or idp can be deremine automatically somehow.
        $this->start();

        // no choice possible. Show discovery service page
        $idpList = $this->getIdPList();
        if (isset($this->originalsp['disco.addInstitutionApp'])
            && $this->originalsp['disco.addInstitutionApp'] === true
        ) {
            $idpList = $this->filterAddInstitutionList($idpList);
        } else {
            $idpList = $this->filterList($idpList);
        }
        $preferredIdP = $this->getRecommendedIdP();
        $preferredIdP = array_key_exists($preferredIdP, $idpList)
            ? $preferredIdP : null;

        if (sizeof($idpList) === 1) {
            $idp = array_keys($idpList)[0];
            $url = Disco::buildContinueUrl(
                $this->spEntityId,
                $this->returnURL,
                $this->returnIdParam,
                $idp
            );
            Logger::info('perun.Disco: Only one Idp left. Redirecting automatically. IdP: '
                . $idp);
            HTTP::redirectTrustedURL($url);
        }

        $t = new DiscoTemplate($this->config);
        $t->data['originalsp'] = $this->originalsp;
        $t->data['idplist'] = $this->idplistStructured($idpList);
        $t->data['preferredidp'] = $preferredIdP;
        $t->data['entityID'] = $this->spEntityId;
        $t->data['return'] = $this->returnURL;
        $t->data['returnIDParam'] = $this->returnIdParam;
        $t->data['AuthnContextClassRef'] = $this->authnContextClassRef;
        $t->show();
    }
public function handleRequest()
    {
        // test if user has selected an idp or idp can be deremine automatically somehow.
        $this->start();

        // no choice possible. Show discovery service page
        $idpList = $this->getIdPList();
        if (isset($this->originalsp['disco.addInstitutionApp'])
            && $this->originalsp['disco.addInstitutionApp'] === true
        ) {
            $idpList = $this->filterAddInstitutionList($idpList);
        } else {
            $idpList = $this->filterList($idpList);
        }
        $preferredIdP = $this->getRecommendedIdP();
        $preferredIdP = array_key_exists($preferredIdP, $idpList)
            ? $preferredIdP : null;

        if (sizeof($idpList) === 1) {
            $idp = array_keys($idpList)[0];
            $url = Disco::buildContinueUrl(
                $this->spEntityId,
                $this->returnURL,
                $this->returnIdParam,
                $idp
            );
            Logger::info('perun.Disco: Only one Idp left. Redirecting automatically. IdP: '
                . $idp);
            HTTP::redirectTrustedURL($url);
        }

        $t = new DiscoTemplate($this->config);
        $t->data['originalsp'] = $this->originalsp;
        $t->data['idplist'] = $this->idplistStructured($idpList);
        $t->data['preferredidp'] = $preferredIdP;
        $t->data['entityID'] = $this->spEntityId;
        $t->data['return'] = $this->returnURL;
        $t->data['returnIDParam'] = $this->returnIdParam;
        $t->data['AuthnContextClassRef'] = $this->authnContextClassRef;
        $t->show();
    }
public function handleRequest ( ) { // test if user has selected an idp or idp can be deremine automatically somehow. $ this -> start ( ) ; // no choice possible. Show discovery service page $ idpList = $ this -> getIdPList ( ) ; if ( isset ( $ this -> originalsp [ 'disco.addInstitutionApp' ] ) && $ this -> originalsp [ 'disco.addInstitutionApp' ] === true ) { $ idpList = $ this -> filterAddInstitutionList ( $ idpList ) ; } else { $ idpList = $ this -> filterList ( $ idpList ) ; } $ preferredIdP = $ this -> getRecommendedIdP ( ) ; $ preferredIdP = array_key_exists ( $ preferredIdP , $ idpList ) ? $ preferredIdP : null ; if ( sizeof ( $ idpList ) === 1 ) { $ idp = array_keys ( $ idpList ) [ 0 ] ; $ url = Disco :: buildContinueUrl ( $ this -> spEntityId , $ this -> returnURL , $ this -> returnIdParam , $ idp ) ; Logger :: info ( 'perun.Disco: Only one Idp left. Redirecting automatically. IdP: ' . $ idp ) ; HTTP :: redirectTrustedURL ( $ url ) ; } $ t = new DiscoTemplate ( $ this -> config ) ; $ t -> data [ 'originalsp' ] = $ this -> originalsp ; $ t -> data [ 'idplist' ] = $ this -> idplistStructured ( $ idpList ) ; $ t -> data [ 'preferredidp' ] = $ preferredIdP ; $ t -> data [ 'entityID' ] = $ this -> spEntityId ; $ t -> data [ 'return' ] = $ this -> returnURL ; $ t -> data [ 'returnIDParam' ] = $ this -> returnIdParam ; $ t -> data [ 'AuthnContextClassRef' ] = $ this -> authnContextClassRef ; $ t -> show ( ) ; }
Handles a request to this discovery service. It is enry point of Discovery service.

The IdP disco parameters should be set before calling this function.
Handles a request to this discovery service . It is enry point of Discovery service .