Bonjour
J’essaye de passer en 4.2 sur une installation ScenariServerLite
J’ai suivi la documentation SCENARIchain-server
en utilisant les paquets Debian sur un serveur Debian
Sur une machine d’essai : aucun souci, tout fonctionne avec scenariserverlite4.2-tomcat8
Sur mon serveur d’exploitation, j’utilise un proxy apache qui permet de passer en https sur le port 443.
Avec scenariserverlite4.1-tomcat7 ça fonctionnait sans problème.
Avec scenariserverlite4.2-tomcat8, après installation et configuration
dans le navigateur ma commande « https://[xxx.xxx.xxx.xxx]/sc42/web/u/ping » fonctionne bien
Avec le client scenari, après saisie du mot de passe, l’entrepôt distant affiche « Non connecté authentification requise »
Si vous avez une idée…
Vous utilisez bien un cerificat valide ?
Oui (organisme certificateur startSSL)
Il fonctionne sans problème avec les autres services (owncloud par exemple)
Vous utilisez quel url dans SCENARIclient ? Vous utilisez bien un SCENARIclient 4.2 ?
Dans le navigateur je teste https://docs.lachiver.fr/sc42/web/u/ping il me demande de m’authentifier et ça passe
Dans ScenariClient (ou l’entrepôt distant de scenarichain) j’utilise l’URL https://docs.lachiver.fr/sc42/
il me demande de m’authentifier .
Si je mets un mauvais mot de passe, il me signale l’erreur.
Si je mets le bon mot de passe j’obtiens non connecté authentification requise
Merci pour votre aide.
J’ai effectivement vu passer des erreurs 401 dans les logs Apache…
Avec ScenariServerLite 4.1, je n’utilisais pas de connecteur AJP…
En partant de la configuration de base installé par les paquets Debian j’avais juste ajouté
dans la partie <VirtualHost *:443> du fichier de configuration Apache
< IfModule mod_proxy.c>
ProxyPass /sc41 http://localhost:8080/scenariserverlite4.1
ProxyPassReverse /sc41 http://localhost:8080/scenariserverlite4.1
< /IfModule>
et ça fonctionnait bien…
J’ai donc essayé de refaire la même chose en 4.2 mais après authentification, je ne suis pas connecté…
A l’heure actuelle, le client scenari 4.2 se connecte bien en utilisant l’adresse
http://docs.lachiver.fr:8080/scenariserverlite4.2/
pour l’entrepôt distant et ScenrariServer fonctionne bien
Avec vos infos, j’ai essayé le connecteur AJP sans plus de succès…
j’ai chargé le module proxy_ajp en plus
j’ai testé les modifs suivantes
dans le fichier <VirtualHost *:443> du fichier de configuration Apache
< IfModule mod_proxy.c>
ProxyPass « /sc42/ » « ajp://localhost:8009/scenariserverlite4.2/ »
ProxyPassReverse « /sc42/ » « ajp://localhost:8009/scenariserverlite4.2 »
< /IfModule>
Dans le fichier server.xml du serveur tomcat8
j’ai ajouté
< Connector port=« 8009 » protocol=« AJP/1.3 » redirectPort=« 8443 » />
en gardant inchangé
< Connector port=« 8080 » protocol=« HTTP/1.1 »
connectionTimeout=« 20000 »
URIEncoding=« UTF-8 »
redirectPort=« 8443 »
/>
Pas d’erreur dans le log de Scenari
dans access.log d’Apache, a priori une erreur 401
ci-dessous
82.64.4.189 - - [11/Feb/2017:16:29:49 +0100] « POST /sc42//public/u/loginUiMoz HTTP/1.1 » 200 685 « - » « Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 cl.4.2/4.2.103 »
82.64.4.189 - - [11/Feb/2017:16:29:49 +0100] « GET /sc42/s/~lachiver/u/adminWsp?cdaction=InfoWspProvider HTTP/1.1 » 401 354 « - » « Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 cl.4.2/4.2.103 »
Voila où j’en suis pour le moment
Ca marche Merci beaucoup…
Bonjour,
Je me retrouve exactement dans le même cas : migration d’une 4.1 vers la 4.2 avec une erreur 401 en passant par un frontal apache…
auparavant pas de souci avec notre frontal apache (non ajp) situé sur une autre machine…
Pour déboguer j’ai installé un frontal apache (testé avec ajp et non) directement sur la VM de scenari… sans chiffrement (pour écarter un problème de certificat) idem :
> 127.0.0.1 - - [24/Nov/2017:18:07:15 +0100] "POST /scenariserver4.2/public/u/loginUiMoz HTTP/1.1" 200 19
> 127.0.0.1 - - [24/Nov/2017:18:07:15 +0100] "GET /scenariserver4.2/s/~usertest/u/adminWsp?cdaction=InfoWspProvider HTTP/1.1" 401 -
> 127.0.0.1 - - [24/Nov/2017:18:07:15 +0100] "GET /scenariserver4.2/s/~usertest/u/adminWsp?cdaction=List&withWspProperties=true&fields=basis*srcRoles*srcRi*srcUser HTTP/1.1" 401 -
voici le vhost apache :
<VirtualHost *:80>
ServerName scenari.mondomaine.fr
AssignUserId www-data www-data
ProxyRequests Off
ProxyPreserveHost On
<location "/" >
Require all granted
ProxyPass http://127.0.0.1:8080/scenariserver4.2/
ProxyPassReverse http:/127.0.0.1:8080/scenariserver4.2/
#ProxyPass ajp://127.0.0.1:8080/scenariserver4.2/
#ProxyPassReverse ajp:/127.0.0.1:8080/scenariserver4.2/
</location>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
</VirtualHost>
Le fichier /etc/tomcat8/Catalina/localhost/scenariserver4.2.xml :
<Context docBase="/usr/share/scenariserver4.2/webapp" />
Je précise que ça marche très bien sans passer par le frontal (avec le client sur un poste de travail) avec http://scenari.mondomaine.fr:8080/scenariserver4.2
dans server.xml, j’ai :
<Connector port=« 8080 » protocol=« HTTP/1.1 »
connectionTimeout=« 20000 »
URIEncoding=« UTF-8 »
redirectPort=« 8443 »/>
<Connector port=« 8009 » protocol=« AJP/1.3 » redirectPort=« 8443 »/>
=> j’ai essayé de mettre redirectPort=8080… et même un proxyPort=« 80 » mais ça ne change rien…
Vous avez des idées?
merci
Bonjour
Je n’ai pas forcément toutes les compétences pour vous aider.
Pour la config tomcat j’ai les mêmes lignes
Par contre pour le serveur apache, pour le proxy j’ai les lignes suivantes
ProxyPass « /scenariserverlite4.2/ » « ajp://localhost:8009/scenariserverlite4.2/ »
ProxyPassReverse « /scenariserverlite4.2/ » « ajp://localhost:8009/scenariserverlite4.2/ »
Si ça peut vous aider
Bonjour et merci pour votre aide (à tous les 2)
Mais j’ai toujours la même chose (erreur HTTP 401) …
127.0.0.1 - - [27/Nov/2017:14:39:23 +0100] « POST /scenariserver4.2/public/u/loginUiMoz HTTP/1.1 » 200 19
127.0.0.1 - - [27/Nov/2017:14:39:23 +0100] « GET /scenariserver4.2/s/~lenorcy/u/adminWsp?cdaction=InfoWspProvider HTTP/1.1 » 401 -
127.0.0.1 - - [27/Nov/2017:14:39:23 +0100] « GET /scenariserver4.2/s/~lenorcy/u/adminWsp?cdaction=List&withWspProperties=true&fields=basissrcRolessrcRi*srcUser HTTP/1.1 » 401 -
J’ai essayé d’autres directives apache (notamment « proxy-chain-auth ») :
<Proxy *>
Order deny,allow
Allow from all
SetEnv proxy-chain-auth
SetEnv proxy-sendcl
idem…
Que voulez vous dire en soupçonnant une erreur dans votre “context path” ce serait dans tomcat8 ou apache?
Je n’'ai pas précisé mais je suis sous Debian Jessie avec les paquets suivants :
# dpkg -l | egrep "tomcat|apache"
ii apache2 2.4.10-10+deb8u11 amd64 Apache HTTP Server
ii apache2-bin 2.4.10-10+deb8u11 amd64 Apache HTTP Server (modules and other binary files)
ii apache2-data 2.4.10-10+deb8u11 all Apache HTTP Server (common files)
ii apache2-utils 2.4.10-10+deb8u11 amd64 Apache HTTP Server (utility programs for web servers)
ii libapache2-mpm-itk 2.4.7-02-1.1+deb8u1 amd64 multiuser module for Apache
ii libtomcat8-java 8.0.14-1+deb8u11 all Apache Tomcat 8 - Servlet and JSP engine -- core libraries
rc scenariserver4.1-tomcat6 4.1.011-s1 all SCENARIserver 4.1 - Tomcat6 integration.
ii scenariserver4.2-tomcat8 4.2.104-s1 all SCENARIserver 4.2 - Tomcat integration.
rc tomcat6 6.0.45+dfsg-1~deb7u2 all Servlet and JSP engine
ii tomcat8 8.0.14-1+deb8u11 all Apache Tomcat 8 - Servlet and JSP engine
ii tomcat8-common 8.0.14-1+deb8u11 all Apache Tomcat 8 - Servlet and JSP engine -- common files
peut-il y avoir un conflit de quelque chose avec scenariserver4.1-tomcat6 encore présent?
merci
Bonjour,
Essayez de supprimer vos Headers imposés (en particulier le Set-Cookie qui me semble une erreur) :
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Bonjour,
oui j’avais également essayé de mettre le « context path » entre les balises host dans server.xml (sans « lite »)… mais c’est encore pire… l’accès directe ne marche plus (le client m’indique « système d’authentification indisponible »)… et encore moins via apache…
J’ai aussi essayé d’enlever les headers…
Je suppose évidemment que le user « usertest » existe bien, que le processus d’authentification (saisie du mot de passe) semble se passer correctement, mais les requêtes suivantes échouent (401). C’est probablement dû à l’absence des cookies d’authentification sur les requêtes suivantes. Si ces requêtes sont bien exemptes de cookies, il faut comprendre pourquoi le cookie a été rejeté, probablement dans la chaine de vos proxys.
Bonjour et merci pour votre aide
- tomcat8 écoute bien sur le port 8080
- scenariserver4.2 (et non scenariserverlite4.2) est installé à partir du dépôt
- serveur atteignable et répondant correctemenet à partir de http://scenari.mondomaine.fr:8080/scenariserver4.2 (on peut travailler à partir du client via cette URL)
dans le fichier “/etc/tomcat8/Catalina/localhost/scenariserver4.2.xml” j’avais initialement :
<Context docBase="/usr/share/scenariserver4.2/webapp" />
maintenant j’ai :
<Context path="/" docBase="/usr/share/scenariserver4.2/webapp/" />
=> j’ai toujours la même chose : ça marche toujours bien en direct (port 8080) mais erreur 401 en passant par le frontal apache (port 80)
Je viens de reprendre le vhost minimaliste que tu proposes :
<VirtualHost *:80>
ServerName scenari.mondomaine.fr
AssignUserId www-data www-data
ProxyRequests Off
ProxyPreserveHost On
<location "/" >
Require all granted
## AJP
#ProxyPass "ajp://127.0.0.1:8009/"
#ProxyPassReverse "ajp://127.0.0.1:8009/"
## HTTP
ProxyPass "http://127.0.0.1:8080/"
ProxyPassReverse "http://127.0.0.1:8080/"
</location>
</VirtualHost>
mais ça ne marche pas si je ne rajoute pas « /scenariserver4.2 » dans les directives ProxPass comme ceci :
<VirtualHost *:80>
ServerName scenari.mondomaine.fr
AssignUserId www-data www-data
ProxyRequests Off
ProxyPreserveHost On
<location "/" >
Require all granted
## AJP
#ProxyPass "ajp://127.0.0.1:8009/"
#ProxyPassReverse "ajp://127.0.0.1:8009/"
## HTTP
ProxyPass "http://127.0.0.1:8080/scenariserver4.2/"
ProxyPassReverse "http://127.0.0.1:8080/scenariserver4.2/"
</location>
</VirtualHost>
… mais là j’ai à nouveau mes erreurs 401
127.0.0.1 - - [29/Nov/2017:09:25:14 +0100] "POST /scenariserver4.2/public/u/loginUiMoz HTTP/1.1" 200 19
127.0.0.1 - - [29/Nov/2017:09:25:14 +0100] "GET /scenariserver4.2/s/~lenorcy/u/adminWsp?cdaction=InfoWspProvider HTTP/1.1" 401 -
127.0.0.1 - - [29/Nov/2017:09:25:14 +0100] "GET /scenariserver4.2/s/~lenorcy/u/adminWsp?cdaction=List&withWspProperties=true&fields=basis*srcRoles*srcRi*srcUser HTTP/1.1" 401 -
a+
Bonjour,
C’est y est !!! ça marche!!!
avec ce vhost :
<VirtualHost *:80>
ServerName scenari.mondomaine.fr
ProxyRequests Off
<location "/scenariserver4.2/" >
Require all granted
ProxyPass "http://127.0.0.1:8080/scenariserver4.2/"
ProxyPassReverse "http://127.0.0.1:8080/scenariserver4.2/"
</location>
</VirtualHost>
et surtout avec l’URL « scenari.mondomaine.fr/scenariserver4.2/ »
et maintenant ça marche avec notre reverse https (qui n’est pas sur la même VM que scenari) : https://tice.mondomaine.fr/scenariserver4.2/ et qui mutualise d’autres ressources web…
en remplacement finalement seulement :
ProxyPass /scenari/ http://scenari.mondomaine.fr:8080/scenariserver4.2/
ProxyPassReverse /scenari/ http://scenari.mondomaine.fr:8080/scenariserver4.2/
par
ProxyPass /scenariserver4.2/ http://scenari.mondomaine.fr:8080/scenariserver4.2/
ProxyPassReverse /scenariserver4.2/ http://scenari.mondomaine.fr:8080/scenariserver4.2/
=> il faut, dans mon cas, que le chemin proxifié soit identique au chemin de l’application!!! C’est en tous les cas vrai selon mon installation de scenari… et certainement la configuration de scenari.
En tous les cas, pour les problèmes similaires… inutile de trop se soucier des directives apache…ProxyPreserveHost, les Header, la transmission des cookies, l’authentification… une config minimaliste du reverse (et surtout habituelle) fonctionne
merci encore pour votre aide
évidemment qu’il faut sécuriser le reverse proxy! On aura bien compris que je mentionnais ces éléments pour un fonctionnement avec une configuration minimale…