rediris-es / simplesamlphp-module-idpinstaller

A SimpleSAMLphp module for pre-installing an IdP
GNU Lesser General Public License v2.1
0 stars 0 forks source link

Enlaces erroneos #9

Closed adriangmemorandum closed 6 years ago

adriangmemorandum commented 6 years ago

Durante la instalación del IdP hay dos sitios en los que encontramos enlaces erroneos:

idpinstaller-error-step5 idp-installer-error-step7

Estos enlaces no funcionan porque se están generando utilizando http como protocolo. El código que genera los enlaces es el siguiente:

    $url_meta       = 'http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['SCRIPT_NAME'], 0, -24) . "saml2/idp/metadata.php?output=xhtml";
    $data['info'][] = $data['ssphpobj']->t('{idpinstaller:idpinstaller:step7_all_info_extra}') . " <a href='$url_meta' target='_blank'>" . $data['ssphpobj']->t('{idpinstaller:idpinstaller:step7_here}') . "</a>";

    $url_init       = 'http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['SCRIPT_NAME'], 0, -24) . "module.php/core/frontpage_welcome.php";
    $data['info'][] = $data['ssphpobj']->t('{idpinstaller:idpinstaller:step9_url_init}') . " <a href='$url_init' target='_blank'>" . $data['ssphpobj']->t('{idpinstaller:idpinstaller:step7_here}') . "</a></br>";

Pienso que lo ideal sería detectar automaticamente que procolo se está utilizando, por aqui hay algunos ejemplos, comentarios y referencias al respecto: https://stackoverflow.com/questions/4042962/php-http-or-https

lonoak commented 6 years ago

Pensaba que te había escrito un comentario, pero veo que no... SimpleSAMLphp creo que tiene internamente maneras de devolverte la ruta por defecto... si es que es eso.

Comprúebalo en el código del skin default.

adriangmemorandum commented 6 years ago

Hay varios casos. Cuando queremos acceder a una URL de algunos de los modulos (incluye module.php a la ruta), la URL se puede generar así:

SimpleSAML\Module::getModuleURL('core/frontpage_welcome.php')

Esto generaría el siguiente enlace: https://172.26.0.252/module.php/core/frontpage_welcome.php

Y para generar la URL a partir de la URL base podemos utilizar el siguiente código:

SimpleSAML\Utils\HTTP::getBaseURL().'saml2/idp/metadata.php?output=xhtml'

Esto nos generaria el siguiente enlace: https://172.26.0.252/saml2/idp/metadata.php?output=xhtml.

Podemos utilizar la primera opcion cuando queramos acceder a una URL de alguno de los modulos, y para el resto podemos utilizar la segunda opción.

En cuanto tenga una rama me pongo con esto.

lonoak commented 6 years ago

Me parece bien. ¿podrías meterlo sobre la rama de desarrollo?

adriangmemorandum commented 6 years ago

Listo, por aquí lo tienes: https://github.com/rediris-es/simplesamlphp-module-idpinstaller/commit/53dfc633e11a3adf1c6111a4a16db1127ec352a4

lonoak commented 6 years ago

Pepe, comprueba que funciona todo y lo comentas por aquí antes de cerrar issue.

jlsevillanomm commented 6 years ago

Hola,

sobre la máquina versión 1.0.14, he instalado los cambios y los enlaces funcionan.