IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

HttpServletRequest.getServerName() retourne l'IP interne et non le server name


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut HttpServletRequest.getServerName() retourne l'IP interne et non le server name
    Bonjour,

    Ma web application me retourne l'IP interne du serveur d'application au lieu du nom du serveur en utilisant : javax.servlet.http.HttpServletRequest.getServerName() .
    L'environnement est le suivant :
    • IIS redirige la requête test.mondomain.com vers l'ip 192.168.33.15 (centos)
    • Apache écoute sur ce port et ridirige via ajp vers wildfly
    • Wildfly contient l'application en question


    Sur apache, j'ai définit le ServerName comme étant test.mondomain.com (httpd.conf et ssl.conf)

    Dans l'application web, getServerName() retourne 192.168.33.15

    Quelqu'un aurait une piste ?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu peux montrer ton Host tomcat et ton virtual host apache? Tu as testé comment ta config? Sniffer le traffic entre le iis et apache permettrait déà je pense de voir ce qui se passe.

  3. #3
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 178
    Points : 274
    Points
    274
    Par défaut
    A quoi sert ton Apache ?
    WildFly utilise le host du proxy (aka Apache) lorsque tu le connectes via ajp.

  4. #4
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Que veux-tu dire par testé ma config ? Tout se déroule bien. Si j'entre l'url https://www.test.mondomain.com , j'arrive bien sur mon appli qui tourne sur wildfly, et la navigation est ok.
    C'est vraiment ce servername qui m'échappe.

    Contenu du fichier /etc/hosts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    127.0.0.1 test.mondomain.com webrtc localhost
    "monippublic"  test.mondomain.com hostname
    Pour le virtual host apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <VirtualHost webrtc:9543>
    ServerName test.mondomain.com
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile mycertificatefile
    SSLCertificateKeyFile mycertificatekey
    SSLCertificateChainFile /mycertificatebundle
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
    CustomLog logs/ssl_request_log \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
     
    RewriteEngine on
     
    RewriteCond %{SERVER_PORT} !^80$
    RewriteCond %{REQUEST_URI} !^/
    RewriteCond %{REQUEST_URI} !^/interface-admin
    RewriteRule ^/(.*)$ https://%{HTTP_HOST}/ [L,R,NE]
    JkMount /* worker1
    </VirtualHost>
    IIS redirige vers apache, et ce nom de domaine a son VirtualHost dans apache qui redirige vers wildfly via ajp.
    A vrai dire, à la base c'était directement de IIS vers wildfly, mais j'avais des comportements bizarre lors des redirections de la page de paiement vers mon site, j'ai donc remis apache entre comme reverse proxy avec mod_jk.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et si tu tappe http://webrtc:9543 (donc tu court-circuite IIS) wilfly voit bien "webrtc" comme nom? J'ai l'impression que IIS n'envoie pas le header qu'il faut à apache dans le Host:, du coup apache transfère ça à wildfly qui benoitement transfère ça dans le ServerName. Le plus simple pour vérifier serait de dumper les headers, soit en utilisant le module http://httpd.apache.org/docs/2.4/mod..._forensic.html de apache, soit en snifant la connexion.

Discussions similaires

  1. LEFT JOIN qui retourne des valeurs NULL et non NULL
    Par devman2011 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/08/2012, 19h05
  2. retourner toute les BDD d'un sql server
    Par digofwall dans le forum VB.NET
    Réponses: 0
    Dernier message: 19/05/2010, 18h02
  3. Equivalent HttpServletRequest.getServerName()
    Par hypothese dans le forum JSF
    Réponses: 0
    Dernier message: 29/10/2009, 13h31
  4. Requête sur non-SQL server database
    Par Mvu dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/04/2008, 16h34
  5. Fonction qui retourne un tableau ou 2 variables ? possible ou non
    Par jiojio dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 05/06/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo