Servicios Web Diaguita-Pilaga - Configuración

Hola.

Comenzamos a realizar pruebas con las reservas presupuestarias.
Para eso conectamos Diaguita (v 2.3.0) con Pilaga (v 2.3.7) siguiendo el instructivo de Diaguita.

Des esta formas no quedo el

cliente. ini

[conexion]
to = "https://172.25.5.20/pilaga/rest/"
auth_tipo = digest
auth_usuario = diaguita_rest
auth_password = ****

servidor.ini

autenticacion = digest

;;
;;Opciones que recibe la librer�a - > rest/rest.php
;;
[settings]
formato_respuesta = json
url_protegida = /.*/

servidor_usuarios.ini

[admin]
password = ****
;api_key= CAMBIAR

[diaguita_rest]
password = ****

;[usuario3]
;password = CAMBIAR

Cuando hacemos click en CONSULTAR IMPUTACION A SIU-PILAGA nos sale el mensaje de error que adjunto.

Ya he revisado todo. cual puede ser el problema?

Desde ya muchas gracias.

Saludos


error.doc (226 KB)

Hola Marisa,
Cómo andás?
Te queríamos comentar que desarrollamos una consola que está dentro de Administración => “Configuración Siu Diaguita” => “Servicio Web con SIU-Pilaga” , que proporciona la verificación del mismo… Tienen que estar adicionados en el perfil funcional…
Chequealos y contanos…
Saludos,
Juan Manuel.

Hola Juan

Adjunto lo que me muestra al chequear

Tambiem adjunto el log de apache y el log del sistema

Marisa


chequeo.doc (138 KB)

log.rar (2.04 KB)

Hola Marisa,

Por lo que se puede ver del log:


[ERROR][diaguita] GET /pilaga/rest/documentacion/tipos-documentos HTTP/1.1
Host: 192.168.15.188
User-Agent: Guzzle/5.1.0 curl/7.38.0 PHP/5.6.20-0+deb8u1

Es como que desde SIU-Diaguita no está llegando al host de SIU-Pilagá. Por favor, podrían:

  • chequear que desde SIU-Diaguita llegan mediante ping/etc. al host donde está SIU-Pilagá
  • chequear el log del lado de SIU-Pilagá y ver si están recibiendo la petición y/o existe algún problema
  • asegurarse de que esté instalado en SIU-Pilagá las dependencias para manejo de REST (curl, mod_rewrite, etc)
  • asegurarse de que se pueden ingresar en el navegador a http://direccion-server-pilaga/rest y conectarse a la consola de visualización de recursos rest con el usuario definido en servidor_usuarios.ini

Espero tus comentarios.

Hola sergio.

Te Cuento
chequear que desde SIU-Diaguita llegan mediante ping/etc. al host donde está SIU-Pilagá ------- Todo OK

chequear el log del lado de SIU-Pilagá y ver si están recibiendo la petición y/o existe algún problema ----- [b]esto es lo que muestra el log de apache de pilaga [/b]              

[Wed Jun 29 11:53:28.344751 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: name in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 12
[Wed Jun 29 11:53:28.344829 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: SingleSignOnService in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 14
[Wed Jun 29 11:53:28.344851 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: certFingerprint in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 15
[Wed Jun 29 11:53:28.344873 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: SingleLogoutService in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 18
[Wed Jun 29 11:53:28.344903 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: name in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 12
[Wed Jun 29 11:53:28.344923 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: SingleSignOnService in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 14
[Wed Jun 29 11:53:28.344941 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: certFingerprint in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 15
[Wed Jun 29 11:53:28.344960 2016] [:error] [pid 13853] [client 192.168.15.114:45164] PHP Notice: Undefined index: SingleLogoutService in /usr/local/pilaga/toba/php/3ros/simplesamlphp/metadata/saml20-idp-remote.php on line 18

asegurarse de que esté instalado en SIU-Pilagá las dependencias para manejo de REST (curl, mod_rewrite, etc) --------------- [b]Todo Instalado[/b]

asegurarse de que se pueden ingresar en el navegador a http://direccion-server-pilaga/rest y conectarse a la consola de visualización de recursos rest con el usuario definido en servidor_usuarios.ini  

Si ingreso al navegado de la forma que me indicas (http://pilaga.test.unnoba.edu.ar/rest) me da este error
[b]Not Found

The requested URL /rest was not found on this server.
Apache/2.4.10 (Debian) Server at pilaga.test.unnoba.edu.ar Port 80[/b]

si ingreso asi (http://pilaga.test.unnoba.edu.ar/pilaga/rest.php). Me permite ingresar el usuario y contraseña y me da este error
{
“error”: “500”,
“mensaje”: “500 Internal Server Error”,
“descripcion”: “Error Interno en el servidor: No se encuentra el recurso para .php en el directorio /usr/local/pilaga/aplicacion/php/rest. \u00bfRuta mal formada?”
}

Saludos.

Marisa

Esto es porque probablemente en SIU-Pilagá (algo que tiene que estar en SIU-Diaguita también, por eso es la dependencia de mod_rewrite activada en apache!) no tienen en la configuración del servidor apache, en la que utilicen para el virtualhost, las entradas tipo:


...
                #API REST
                RewriteEngine On
                RewriteBase /pilaga
                Options FollowSymLinks SymLinksIfOwnerMatch
                RewriteRule ^rest/(.*)$ rest.php/$1 [PT,L,QSA]
                RewriteRule ^rest$      rest.php/   [PT,L,QSA]
                SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
...

Este pedazo de cónfiguración, por defecto cuando instalan cualquier sistema SIU, está presente en los archivos toba.conf respectivos.

Saludos!

Hola Sergio.

Probe todo lo que me indiscate y todo sigue igual.

Donde más puedo consegir documentación sobre el tema?

Saludos.

Marisa

Hola Marisa,

Vayamos por partes, primero que nada estaría bueno “conocer” como están configurando el servidor apache uds… esto es un tarea que depende del administrador de sistemas y muchas veces es al criterio/gusto/necesidad particular. Yo simplemente estoy haciendo inferencias desde la poca información que nos están proporcionando como para tratar de ayudarlos. Además, esto varía un poco dependiendo de si están bajo windows/linux/otro, apache 2.2/2.4, etc.

Sigamos viendo como está puesto a punto SIU-Pilagá. ¿Están usando el archivo toba.conf que se genera con el instalador o están usando uno propio? Adjuntar la configuración que tengan… la que agregaron al apache al instalar SIU-Pilagá. Avancemos por partes.

PD: ver algo de info sobre configurar un virtualhost en apache, otro también paso 4 y 5.

Sergio
Te paso la información de pilaga

Estamos usando pilaga 2.3.7, servidor Linux, Apache 2.4, php 5.6.

esat es la configuración del archivo conf de pilaga.

<VirtualHost *:80>
        ServerName pilaga.test.unnoba.edu.ar
        ServerAdmin tecnologia@unnoba.edu.ar
        DocumentRoot /usr/local/pilaga/aplicacion/www
     #  DirectoryIndex index.html

    LogLevel error rewrite:info

    #Proyecto:pilaga_toba
    Alias /pilaga_toba "/usr/local/pilaga/toba/www"
    <Directory "/usr/local/pilaga/toba/www/">
                SetEnv TOBA_DIR         "/usr/local/pilaga/toba"
        Options MultiViews
        AllowOverride None
        Require all granted
    </Directory>


    #Proyecto: toba_usuarios
    Alias /pilaga_toba_usuarios "/usr/local/pilaga/toba/proyectos/toba_usuarios/www"
    <Directory "/usr/local/pilaga/toba/proyectos/toba_usuarios/www/">
        DirectoryIndex aplicacion.php
        Options MultiViews
        AllowOverride None
        Require all granted
        SetEnv TOBA_DIR                 "/usr/local/pilaga/toba"
        SetEnv TOBA_PROYECTO            "toba_usuarios"
        SetEnv TOBA_INSTANCIA           "produccion"
        SetEnv TOBA_INSTALACION_DIR     "/usr/local/pilaga/instalacion"
    </Directory>

 #Proyecto: pilaga
    Alias /pilaga "/usr/local/pilaga/aplicacion/www"
    <Directory "/usr/local/pilaga/aplicacion/www/">
        Options FollowSymLinks SymLinksIfOwnerMatch MultiViews
        RewriteEngine On
        RewriteBase /pilaga
        RewriteRule ^rest/(.*)$ rest.php/$1 [PT,L,QSA]
        RewriteRule ^rest$      rest.php/   [PT,L,QSA]
        SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
        DirectoryIndex aplicacion.php
        AllowOverride None
        Require all granted
        SetEnv TOBA_DIR                         "/usr/local/pilaga/toba"
        SetEnv TOBA_PROYECTO                    "pilaga"
        SetEnv TOBA_INSTANCIA                   "produccion"
        SetEnv TOBA_INSTALACION_DIR             "/usr/local/pilaga/instalacion"
    </Directory>


  #Proyecto: Instalador de pilaga
   Alias /2.3.7 "/var/www/html/2.3.7"
   <Directory "/var/www/html/2.3.7">
        Options Multiviews
        AllowOverride none
        Require all granted
   </Directory>

 #Proyecto: Info servidor
   Alias /info "/var/www/info"
   <Directory "/var/www/info">
        DirectoryIndex info.php
        Options Multiviews
        AllowOverride none
        Require all granted
   </Directory>
   Alias /sp/simplesaml /usr/local/pilaga/toba/php/3ros/simplesamlphp/www
   <Directory /usr/local/pilaga/toba/php/3ros/simplesamlphp/www>
        Require all granted
        SetEnv TOBA_DIR                 "/usr/local/pilaga/toba"
        SetEnv TOBA_PROYECTO    "pilaga"
        SetEnv TOBA_INSTANCIA   "produccion"
        SetEnv TOBA_INSTALACION_DIR "/usr/local/pilaga/instalacion"
   </Directory>


#    <Location />
#        RedirectMatch ^/$ http://pilaga2013.sistemas.unnoba.edu.ar/pilaga/
#    </Location>
</VirtualHost>

Saludos.

Marisa

Perfecto Marisa, vamos primero a definir como están accediendo a SIU-Pilagá. Por defecto todo sistema SIU cuando se instala brinda el acceso por medio de una url tipo dominio-o-ip/ más alias-del-proyecto. Hasta aquí todo bien, pero a veces es mas lindo que sea el acceso sin el alias-del-proyecto ya que el dominio suele ser representativo del sistema en particular… cosa que asumo es lo que están realizando uds. (según la directiva ServerName pilaga.test.unnoba.edu.ar).


        DocumentRoot /usr/local/pilaga/aplicacion/www

Con esta directiva, están haciendo que apache redireccione todas las peticiones de ese virtualhost directamente al directorio de la aplicación. Esto es para evitar usar el alias-del-proyecto que comenté previamente. Entonces, en general deberían:

  • agregar la directiva DocumentRoot /usr/local/pilaga/aplicacion/www para acceso directo por dominio
  • eliminar la directiva Alias /pilaga “/usr/local/pilaga/aplicacion/www” ya que esta fué reemplazada por la anterior
  • adaptar la directiva RewriteBase /pilaga para que quede RewriteBase / ya que no usan mas alias…
  • (ya lo deben tener hecho) adaptar el archivo de instancia.ini del proyecto pilaga para que no use el alias

Desde SIU-Diaguita teniamos una indicación de como configurar el virtualhost sin alias, a eso hemos agregado la recomendación de adaptar la regla del rewrite engine ahora.

Espero que les quede, ahora sí, funcionando!

Hola Sergio.

Ya revise toda la configuración. Esta todo ok. Pero sigo con los mismo errores.

Saludos.

Marisa

Marisa,

En la configuración que pasaste anteriormente tenían RewriteBase /pilaga. ¿Se fijaron de cambiar o que ahora esté como RewriteBase / y que el apache se haya reiniciado correctamente?

Para poder usar los servicios REST es necesario que puedan corroborar que todo está bien instalado y probar acceder a la consola de documentación y pruebas que tienen todos los sistemas hechos en SIU-Toba: a [b]http://servidor-pilaga/rest[/b] y también hacer lo propio con [b]http://servidor-diaguita/rest[/b] (siempre y cuando hayan configurado el archivo servidor.ini y servidor_usuarios.ini).