Problème, Question
Configuration suivante : WebServer IHS avec module Dispatcher configuré, qui en retour pointe vers un rendu de serveur d'applications WebSphere depuis une instance CQ en cours d’exécution. Un script de classe ou jsp dans CQ appelle la méthode response.sendRedirect()
qui provoque une mauvaise redirection : le nom de serveur interne et le port de l'application-serveur WebSphere non accessible depuis l'extérieur sont exposés à l’emplacement
de l'en-tête de réponse, utilisé pour effectuer la redirection en question.
La cause de ce problème est WebSphere, la méthode d'application HttpServletResponse#sendRedirect()
de IBM étant directement influencée par les en-têtes de requête personnalisés par défaut qui sont générés par le module externe IHS de WebSphere. Ce problème est considéré comme un cas de verrouillage par un fournisseur IBM.
Résolution, réponse
En utilisant mod_headers
dans IHS WebServer, il est possible de transmettre les en-têtes spécifiques à WebServer à l'application-serveur en ajoutant ces en-têtes avec la directive RequestHeader
. En outre, ces en-têtes personnalisés doivent être explicitement autorisés dans la configuration Dispatcher, sans quoi ils seront ignorés.
Exemple :
- domaine public : http://www.mydomain.com
Configuration IHS
Modifiez le fichier de configuration httpd.conf
du serveur web IHS et procédez comme suit :
- Assurez-vous que le module
mod_headers
est présent et chargé - Ajoutez des en-têtes spécifiques WAS à l’aide de la directive
RequestHeader
Exemple (extrait de httpd.conf
) :
... LoadModule headers_module modules/mod_headers.so ... <Directory /> <IfModule disp_apache2.c> # set custom Websphere headers RequestHeader set $WSSN www.mydomain.com RequestHeader set $WSSP 80 SetHandler dispatcher-handler </IfModule> Options FollowSymLinks </Directory>
Configuration de Dispatcher
Au niveau répartiteur, il est nécessaire d’ajouter la liste des en-têtes de requête configurées ci-dessus à la liste des en-têtes de client que le répartiteur transmettra à la ferme de rendu définie, Websphere app-server dans ce cas.
Procédez comme suit :
- Modifiez le fichier de configuration
dispatcher.any
. - Recherchez la section
/clientheaders
et ajoutez des en-têtes supplémentaires à inclure. - Redémarrage IHS
Exemple (extrait de dispatcher.any
) :
... /clientheaders { ... "$WSSN" "$WSSP" } ...
Configuration de Websphere
L’en-tête Websphere $WSSP
spécifie le port et $WSSN
définit le nom d’hôte à utiliser lorsque response.sendRedirect()
est appelé dans Websphere. En outre, le port indiqué dans l’en-tête $WSSP
est également utilisé pour localiser l’hôte virtuel dans Websphere.
Connectez-vous à la Console d'administration de Websphere et procédez comme suit :
- Accédez à
Environnement > Hôtes virtuels
- Sélectionnez la configuration d’hôte virtuelle utilisée pour CQ
- Cliquez sur
Alias d’hôte
- Ajoutez le port
80
- Redémarrez Websphere si nécessaire
REMARQUE : ce redémarrage peut s'avérer nécessaire pour ajouter d'autres en-têtes spécifiques de Websphere, selon la configuration utilisée. Consultez le document suivant, qui présente les en-têtes spécifiques de Websphere et leur signification.
Telechargement
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?