PDA

View Full Version : [Reglé] Popups et authentification HTTP


near
08-10-2007, 04:36 PM
Bonjour,

Je ne sais pas si ça se produit que chez moi ou si c'est un bug :
* Je me logue pour la première fois sur Centreon
* Je me dirige vers la status map
* Je passe la souris sur un hôte
* Je vois la popup
* La fenetre d'authentification HTTP s'ouvre et me demande les identifiants de nagios (nagiosadmin/...).

C'est très frustrant, parce que tant que les identifiants ne sont pas entrés, cette fenêtre revient à chaque fois. Le pire, c'est que je vois parfaitement la status map derrière !

Je crée un ticket ou je suis un boulet ?

PS : tout est bien configuré coté Centreon, j'ai mis la bonne URL (statusmap.cgi) et les identifiants nagios.

wistof
08-13-2007, 01:29 PM
Hello,

Il nous manque :
- ta version d'Oreon / Centreon utilisée
- ta version de statusmap utilisée (et si c'est un update )
- ton navigateur
- la présence de logs douteux dans les logs apaches (?)

Merci

near
08-13-2007, 03:35 PM
oops, oublié !

* Oreon 1.4.0 (la 1.4.1 fait pareil de mémoire),
* StatusMap 1.1 (installée directement),
* Firefox 2.0.0.6 et IE 6,
* Pour les logs ça fait des 403 forbidden bien sûr : quand je passe la souris sur un host, il essaie de récupérer la vignette (allez savoir pourquoi) :

https://monitor/nagios2/images/s/base/win40.png
GET /nagios2/images/s/base/win40.png HTTP/1.1
Host: touareg-pre
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Accept: image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://monitor/oreon/oreon.php?p=204

HTTP/1.x 401 Authorization Required
Date: Mon, 13 Aug 2007 13:23:22 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7 mod_ssl/2.2.3 OpenSSL/0.9.8c
WWW-Authenticate: Basic realm="Nagios Access"
Content-Length: 525
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

PS : ça fait pareil en HTTP.

near
08-13-2007, 03:41 PM
Trouvé pourquoi il veut charger l'image : dans la popup, la vignette de l'host est réutilisée.

wistof
08-13-2007, 05:34 PM
Peux tu me donner, depuis le code source de la page html de la statusmap, l'areamap utilisée.

near
08-14-2007, 10:38 AM
poum,

Pour info, je suis passé à Centreon 1.4.1, j'ai mis à jour la status map (1.1), et ça fait toujours le même soucis.

Pour la map, je ne sais pas quoi te dire... à part une petite balise map, il n'y a... rien dedans !

<tr class="ListHeader"><td class="ListColHeaderCenter" colspan="2" >Nagios Status Map<span id='oreonstatusmap_timestamp'></span></td></tr>
<tr >
<td><map id='statusmap' name='statusmap'></map>
<div align=center><img id='oreonstatusmapimg' usemap="#statusmap" src='modules/statusmap/statusmapproxy.php'></div></td>
<td>

Je vais continuer mes investigations :)

near
08-14-2007, 11:35 AM
Quand on passe la souris sur un hôte, il affiche le noeud (généré en JS) :

<area onmouseout="hidePopup()" onmouseover="showPopup("<table border=0 cellpadding=0 cellspacing=5><tr><td><img src=/nagios2/images/s/base/win40.png border=0 width=40 height=40></td><td class=\"popupText\"><i></i></td></tr><tr><td class=\"popupText\">Name:</td><td class=\"popupText\"><b>machine</b></td></tr><tr><td class=\"popupText\">Alias:</td><td class=\"popupText\"><b>machine</b></td></tr><tr><td class=\"popupText\">Address:</td><td class=\"popupText\"><b>127.0.0.1</b></td></tr><tr><td class=\"popupText\">State:</td><td class=\"popupText\"><b><font color=green>Up</font></b></td></tr><tr><td class=\"popupText\">Status Information:</td><td class=\"popupText\"><b></b></td></tr><tr><td class=\"popupText\">State Duration:</td><td class=\"popupText\"><b>15d 9h 54m 52s</b></td></tr><tr><td class=\"popupText\">Last Status Check:</td><td class=\"popupText\"><b>N/A</b></td></tr><tr><td class=\"popupText\">Last State Change:</td><td class=\"popupText\"><b>30-07-2007 01:32:42</b></td></tr><tr><td class=\"popupText\">Parent Host(s):</td><td class=\"popupText\"><b>papa</b></td></tr><tr><td class=\"popupText\">Immediate Child Hosts:</td><td class=\"popupText\"><b>0</b></td></tr></table><br><b><u>Services:</u></b><br>- <font color=green>7 ok</font><br>- <font color=orange>1 warning</font><br>",event)" href="oreon.php?search_type_host=&search_type_host=1&p=2&search=machine" coords="49,163,89,228" shape="rect"/>

A part le fait qu'il n'y ait pas d'identifiants, je ne vois pas où est le problème. Le navigateur devrait s'en rappeler... Mais en fait non. Les identifiants ne sont utilisés que pour charger la carte, mais ne sont pas gardés en tant qu'identifiants de session, comme quand on se connecte en tapant ses identifiants.

Ce n'est pas un bug de firefox ni d'IE, c'est juste la manière dont est récupérée la carte et les autres éléments autour.

Pour faire les choses proprement, j'aurais une suggestion : fabriquer soit même les headers qui vont bien sans passer par les identifiants dans l'URL (pour info : http://fr3.php.net/features.http-auth). Ticket ou pas ? :)

wistof
08-14-2007, 03:42 PM
non non, pas ticket.

Compare http://svn.oreon-project.org/oreon-dev/www/include/common/getHiddenImage.php avec ton fichier getHiddenImage.php

near
08-14-2007, 03:47 PM
Ils sont identiques.

wistof
08-14-2007, 03:51 PM
Ok,

en fait, le src de l'image devrait etre du type :
include/common/getHiddenImage.php?logo=1&path=/nagios2/images/logos/base/win40.png
et ceci est géré dans http://svn.oreon-project.org/Modules/statusmap/statusmapproxy.php

est ce que tu as bien activé le authentification cgi au niveau du cgi.cfg ?

near
08-14-2007, 04:01 PM
Centreon a bien généré le cgi.cfg avec un "use_authentication=1".

En effet, on dirait qu'il zappe l'info. Hmm... 2 minutes, je fais quelques tests

wistof
08-14-2007, 04:10 PM
Donnes nous les valeurs des options suivantes :
- optGen["nagios_path_img"]
- cgi['physical_html_path']
- cgi['url_html_path']

je te laisse la transposition avec l'interface Centreon.

near
08-14-2007, 04:18 PM
Trouvé ! Il manquait un "/" :D

Ligne 121, remplacer :
$pattern = '|(<img src=)'. $cgi['url_html_path'] . $path_img .'(.*\.\w{1,3})( border=0 .*>)|i';

Par :
$pattern = '|(<img src=)'. $cgi['url_html_path']. '/' .$path_img .'(.*\.\w{1,3})( border=0 .*>)|i';

wistof
08-14-2007, 04:20 PM
il manque plutot un / à ton url_html_path dans cgi.cfg.

On va éviter de modifier directement le code.

near
08-14-2007, 04:27 PM
Oui, bonne idée ! Merci de ta patience :)

Attention, sur une installation de base de centreon, le url_html_path n'a pas de / final.

wistof
08-14-2007, 04:30 PM
Bizarre, personne n'avait encore rencontrer ce probléme

near
08-14-2007, 04:56 PM
Surement parce qu'en général on ne spécifie les icones que pour la statusmap, pas pour l'hote proprement dit... Et je crois que les popup ne sont arrivées qu'avec la version 1.1.

near
08-16-2007, 10:42 AM
Hmm, pas totalement terminé. J'ai bien réglé le path à partir de la configuration de centreon, mais il l'efface à chaque fois :D (il enlève le / final quoi)

Que faire maintenant ? (j'ai posté la ligne incriminée un peu plus haut, pour éviter que tu perdes du temps)

wistof
08-16-2007, 01:12 PM
Pour le moment, remets le / dans le code.

Je regarderais ça un peu plus tard.
Merci pour le retour.