Trying to set a variable on content of SOAP envelope
While trying to help our DevOps team, I previously used another iRule I found on DevCentral as a template to do some throttling on http requests. With a few modifications, I got it working, and it works great. Props to Kirk Bauer for his code share on https://devcentral.f5.com/codeshare/http-request-throttle Nice work
Of course they now want me to perform the same function but instead of throttling on the client's IP address, they now want me to throttle off a username instead of IP. The catch for me is the username is contained in a SOAP envelope. I am a network guy so XML/SOAP is not my forte, I actually don't even know if this is possible, and if if this type of inspection will really crush my cpu/memory, as our prod version is a heavily used application.
I did a tcpdump on a test connection to find exactly where the username is located. Looking in wireshark the test_user is contained under
XML> soapenv:Envelope> soapenv:Header> wsse:Security> wsse:UsernameToken> wsse:Username> test_user
Any idea if, or how this could be done? I looked over any DevCentral or support posts related to this but I am not able to figure out what to do. Would a XML profile be any benefit?
Thanks in advance, Bill