Forum Discussion

ckteur's avatar
ckteur
Icon for Cirrus rankCirrus
Apr 29, 2021
Solved

Replace an header authorization request with policy or iRule doesn't work ...

Hi all,

 

I need to replace an header in request : the original header is "X-epsilon-Authorization" and the new header is "Authorization".

I don't know if the value of header is necessary but is the same : "Basic xxxx"

 

I try it with Policy:

 

Condition

"HTTP HEADER" named "X-epsilon-Authorization" "is" "any of" "Basic XXXX" at "request"

 

Action

"Remove" "http header" named "X-epsilon-Authorization" at "request"

"Insert" "http header" named "Authorization" with value "Basic XXX" at "request"

 

I try also witch iRule:

 

-----------------------------------------------

when HTTP_REQUEST {

 

   if { [HTTP::header] eq "X-epsilon-Authorization" } {

      HTTP::header replace "Authorization"

   }

 }

------------------------------------------------

 

It doesn't work with iRule or Policy ..... Can anyone help me ?

 

Thanks !

  • Try below. Modify the names of the header if needed. You can enable logging to see if it's replacing as expected.

     

    when HTTP_REQUEST {
    if { [HTTP::header exists "X-epsilon-Authorization"] } {
    set value [HTTP::header value X-epsilon-Authorization]
    HTTP::header remove X-epsilon-Authorization
    HTTP::header insert Authorization $value
    } else {
     return
     }
     foreach aHeader [HTTP::header names] {
      # log local0. "$aHeader: [HTTP::header value $aHeader]"
          }
    }

     

     

5 Replies

  • Try below. Modify the names of the header if needed. You can enable logging to see if it's replacing as expected.

     

    when HTTP_REQUEST {
    if { [HTTP::header exists "X-epsilon-Authorization"] } {
    set value [HTTP::header value X-epsilon-Authorization]
    HTTP::header remove X-epsilon-Authorization
    HTTP::header insert Authorization $value
    } else {
     return
     }
     foreach aHeader [HTTP::header names] {
      # log local0. "$aHeader: [HTTP::header value $aHeader]"
          }
    }

     

     

    • ckteur's avatar
      ckteur
      Icon for Cirrus rankCirrus

      Hi SanjayP,

       

      Thanks for reply !

      I try the irule but that return an error: "01070151:3: Rule [/Common/A_irule] error: /Common/A_irule:2: error: [parse error: PARSE syntax 33 {syntax error in expression " HTTP::header exists X-mafrenchbank-Authorization ": variable references require preceding $}][{ HTTP::header exists X-mafrenchbank-Authorization }]"

       

      Thanks

      • ckteur's avatar
        ckteur
        Icon for Cirrus rankCirrus

        It works !!

         

        Just the hooks were missing [HTTP::header exists "X-epsilon-Authorization"]

        The irule run perfectly and the value of Header has been changed.

         

        Thanks a lot and have a good day !