2017-03-25 1 views
3

Dans un projet, j'ai dû exécuter CA Webagent Siteminder qui m'envoie les en-têtes hérités avec des traits de soulignement. Puisque les caractères de soulignement d'Apache 2.4 sont obsolètes et supprimés en silence.Apache - Convertit les traits de soulignement en tirets dans les en-têtes

je besoin d'une solution de contournement via mod_headers qui convertit tous les _ des tirets souligne - dans la demande -tête.

Avant

legacy_header_one 
legacy_header_two 
legacy_header_three 

Après

legacy-header-one 
legacy-header-two 
legacy-header-three 
+0

Essayez-vous de convertir les noms d'en-tête ou les valeurs d'en-tête ou les deux? – covener

+0

Je veux convertir les 'noms' – Roman

Répondre

0

Dans votre configuration VirtualHost:

SetEnvIfNoCase ^OAM.REMOTE.USER$ ^(.*)$ fix_accept_encoding=$1 
RequestHeader set OAM-REMOTE-USER %{fix_accept_encoding}e env=fix_accept_encoding 

Si vous utilisez mod_wsgi pour Django ou Flask, vous devez ajouter:

WSGIPassAuthorization On

+0

Cela ne convertit qu'une en-tête-variable spécifique en minuscules, n'est-ce pas? – Roman

0

Vous avez deux options:

  1. Apache Bypass

    # 
    # The following works around a client sending a broken Accept_Encoding 
    # header. 
    # 
    SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 
    RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding 
    
  2. Siteminder Bypass

    #its not explicitly stated but im assuming this should be in your WebAgent.conf file 
    LegacyVariables="NO" 
    

EDIT:

Je sais que cela ne répond pas directement à votre question de la conversion de _ - mais il est une réponse pour aider à atténuer l'Apache 2.4 vs question d'en-tête CA SiteMinder.