Using Gatling with Websphere 7 - Authentication problems

I’ll try right away, I was busy releasing our application. =)

ha ha
sorry, I was just wonder if you noticed my mail as I sent it just when you replied. :slight_smile:

No problem, it’s indeed easy to miss an email in these cases. :slight_smile:

So i tried with keep-alive enabled and your gatling-http jar.
(I just deleted the one existing in the /lib folder and copied the one you provided instead, I hope that’s enough)
Still the same issue.
Here goes the charles proxy recording :
http://tsukilulu.free.fr/gatling/20121112/loginRecording_Gatling_1.4.0_snapshotGattlingHttp.chls

Do you need any other logs, tests, whatever ?

I’m getting crazy with this…
Could you please send your simulation?

Here’s my simulation :
http://tsukilulu.free.fr/gatling/20121112/PortailSimulation2.scala

I’ve also uploaded a Charles recording of the same scenario with IE9, in case it could be useful.
http://tsukilulu.free.fr/gatling/20121112/loginRecording_IE9.chls

As i said before, were using some kind of crazy custom-made-by-the-client-tech-service authentification servlet, so it might have something real weird.
But I don’t see why it wouldn’t accept something closely mimicking a browser. =/

Any idea why there is no accept-encoding “deflate” in the gatling requests ?
What did I do wrong in the simulation ?

Could you try to run this simulation, please?
Some headers feel strange (I also removed the proxy, which is Charles I guess)…
I have absolutely no idea about why the Accept header become gzip instead of gzip. deflate?!

PortailSimulation2modified.scala (2.12 KB)

Running your simulation (with and without Charles proxy), still same result :
http://tsukilulu.free.fr/gatling/20121112/loginRecording_Gatling_1.4.0_snapshotGatlingHttp_modifiedScn.chls

As differences on the headers, I can see :

  • the missing deflate
  • the cookies with quotes and $Path

Can my environment (Win7) have any effect on the deflate ?
If needed I can try running the scenario from a linux.

Can you intercept and edit the requests with Charles Proxy?
If it’s the case, what about change these values manually to see if it’s the root of the problem ?

cheers
Nicolas

For now, my best guess is that WAS or your custom authentication module doesn’t support proper version 1 cookies (with the quotes).

Hey, I’ve just noticed something…

I) Firefox Scenario
ccj_security_check response :
LtpaToken2=+ImgCj15kKlsQU0NPkwf/As6w8Rw0jXZtoQp5rCSNKTNn5EC9hzErZpnhecPmclwjgUGGkHpS0uD9tTgCEboK/YA56JFZ+dXwegrjAx9YQJfuycheNIkfjs0049iQyseeysPOasxf2fdSb2fU1n+iAligbFzGqWYzsv8Hiz67CwEnDT/dEk1TuhK/bTdTlTSFrVJ1TFVkQtLPPPwNlY6E+7SqgViEs9bEdfTlgZTyIh1/5Mex7AiioAkP2Qz0nch5WELp85lWPZR6HUwEEx/ovAngiSJUKCCTdbslj8YScs2USz2RkobvlJcDRNfB4dCwHp/nxTuFcLe1uCgRaRU3mHEHuouDWNMCZR9PLYnDwukgEs46cqwNeMTNrkBV8f0ZEWdFM/0X1B4ZS1fiShFaPJHNnstAfOVgyqkg8Hez7jhCtAebYVDZFwSD6E+nbyDcU3wupRvawLtLHRfU4NCn2HIbvuOuIHLavlt+XIC5WCvmHeKUHekCgfDcKZrjdX4V3cVUI+d6DU7WiK8XqiHemm+8S89RB6rgHWb6IE6FbWHAzD6CgbX+/JnOAaRse8PEH3fzYw2ztBURlBZAqTBSi/yVdJT26R/8ObeK33MnIb+g88ZWK50U7rWM3Xn8yYjPYnZBjU2BIwjAuQTPvRR5w==; Path=/

next query :
LtpaToken2=+ImgCj15kKlsQU0NPkwf/As6w8Rw0jXZtoQp5rCSNKTNn5EC9hzErZpnhecPmclwjgUGGkHpS0uD9tTgCEboK/YA56JFZ+dXwegrjAx9YQJfuycheNIkfjs0049iQyseeysPOasxf2fdSb2fU1n+iAligbFzGqWYzsv8Hiz67CwEnDT/dEk1TuhK/bTdTlTSFrVJ1TFVkQtLPPPwNlY6E+7SqgViEs9bEdfTlgZTyIh1/5Mex7AiioAkP2Qz0nch5WELp85lWPZR6HUwEEx/ovAngiSJUKCCTdbslj8YScs2USz2RkobvlJcDRNfB4dCwHp/nxTuFcLe1uCgRaRU3mHEHuouDWNMCZR9PLYnDwukgEs46cqwNeMTNrkBV8f0ZEWdFM/0X1B4ZS1fiShFaPJHNnstAfOVgyqkg8Hez7jhCtAebYVDZFwSD6E+nbyDcU3wupRvawLtLHRfU4NCn2HIbvuOuIHLavlt+XIC5WCvmHeKUHekCgfDcKZrjdX4V3cVUI+d6DU7WiK8XqiHemm+8S89RB6rgHWb6IE6FbWHAzD6CgbX+/JnOAaRse8PEH3fzYw2ztBURlBZAqTBSi/yVdJT26R/8ObeK33MnIb+g88ZWK50U7rWM3Xn8yYjPYnZBjU2BIwjAuQTPvRR5w==

Exact same cookie, compared with npp

II) Gatling Scenario

ccj_security_check response :

LtpaToken2=KV52jW+uYS8wUOo4nGplN74y3VhwL5MnD/HdjbJHPVwl8bQrSGJUDff3fehmIHXt4/FLAtfLK4Ekn1kgApo6oJN/MrJ/PAKL8L8yosfZqWenmzhPtHOkUV3vodyH+p4wZlxMuwLqy2WoefcZNMf5efcc/8ngVSUkyQYhWm3QsWq7BWPXZGyooBVOAAySjhopTjxm1f7cZUr9dPVMgh+fNp7Dk5eI4h3IQN5Q6k9bWQkuDlNQpNyxV65+wiCYDglZHxy79J0crlQO3LE3IMFh9ixQ8cWh5Fx24HJcc5bchfFKQxTBKEboXnJrJ6UXUDNYG1hJAFHO7QbV3N4x3/k7p+66U7/97crxDZeAMUtiXuXaot9JUiZpoTwVmbJWI0R5n6BDkxxe8CSxFnlby1fMApPfqIWBAtEnKzH+PS3SEZruZjW4KgpfVwr1zj+DHpqD31ISDwxrfttxZKikWj4k7xP4pmZZYE80TR/bLcmvoVsSivxvEgUjfeD2PAKeCEOj1tflvuEZEBUBNkw4tIsDj1V5V/P71XtMombQaNkHLi9u/xljttX7XcKgCmXML3G+qAVFoRJzMs24wO/kJze/Yardnq/SjPXRdefLERwoKcC6G5tIEslZ/QPtCxP7rRdbuY3g5MqCrf1qmIZ0CWMIcQ==; Path=/

next query:
LtpaToken2=“KV52jW+uYS8wUOo4nGplN74y3VhwL5MnD/HdjbJHPVwl8bQrSGJUDff3fehmIHXt4/FLAtfLK4Ekn1kgApo6oJN/MrJ/PAKL8L8yosfZqWenmzhPtHOkUV3vodyH+p4wZlxMuwLqy2WoefcZNMf5efcc/8ngVSUkyQYhWm3QsWq7BWPXZGyooBVOAAySjhopTjxm1f7cZUr9dPVMgh+fNp7Dk5eI4h3IQN5Q6k9bWQkuDlNQpNyxV65+wiCYDglZHxy79J0crlQO3LE3IMFh9ixQ8cWh5Fx24HJcc5bchfFKQxTBKEboXnJrJ6UXUDNYG1hJAFHO7QbV3N4x3/k7p+66U7/97crxDZeAMUtiXuXaot9JUiZpoTwVmbJWI0R5n6BDkxxe8CSxFnlby1fMApPfqIWBAtEnKzH+PS3SEZruZjW4KgpfVwr1zj+DHpqD31ISDwxrfttxZKikWj4k7xP4pmZZYE80TR/bLcmvoVsSivxvEgUjfeD2PAKeCEOj1tflvuEZEBUBNkw4tIsDj1V5V/P71XtMombQaNkHLi9u/xljttX7XcKgCmXML3G+qAVFoRJzMs24wO/kJze/Yardnq/SjPXRdefLERwoKcC6G5tIEslZ/QPtCxP7rRdbuY3g5MqCrf1qmIZ0CWMIcQ”; $Path="/"

The trailing “==” is missing !
And apparently, Websphere always return a cookie with a trailing ==, that is always missing from the Gatling requests afterwards.

I’m no expert, but that could be it, isn’t it?

I’ve tried my theory by intercepting the http request with Charles proxy and adding the missing “==” at the end of the ltpaToken…
And it’s working !
At last !

What the hell???
Did went to the end of the string, good catch!
Will try to figure out what happens tomorrow. Now that we know where to look, we’ll definitely fix this.

Thanks for your patience digging into this.

Cheers,

Stéphane

Ho damn, I should have pushed for this one, I bit myself…
https://github.com/AsyncHttpClient/async-http-client/pull/138

This issue is already fixed in the AHC master, but not in the 1.7.X branch.
I will deploy a custom AHC version, and will ask Jean-François to cherry-pick this fix so it makes it for a 1.7.8 some day.

For my defense, I must say that this cookie is invalid according to the RFC!!!

What the hell???
I had the exact same reaction.
Followed by “Why the f*** do that fing websphere use some fing = signs ?!” (pardon my french, but i’m fighting against Websphere’s own crazy way of doing things for more than one year, it starts to get on my nerves)

Thanks for your patience digging into this.

Hey, that’s how open-source projects are supposed to work, aren’t they?
Since we get to enjoy your hard work, the least we could do is provide some usefull feedbacks. :slight_smile:

Have a nice debugging and Devox !

Josselin

For my defense, I must say that this cookie is invalid according to the RFC!!!

I’ve learned the hard way that IBM do not really likes standards or following rules set by someone else. =)
They enjoy a lot more abusing of their power to bend these rules as it please
them.

Anyway, thanks for the really quick fix.
I’ll try any version you’ll provide me tomorrow morning. :slight_smile:

Hi,

I’ve built a new snapshot with a custom made AHC that properly parses non encoded cookies such as yours:
https://github.com/excilys/gatling/issues/818

http://repository-gatling.forge.cloudbees.com/snapshot/com/excilys/ebi/gatling/highcharts/gatling-charts-highcharts/1.4.0-SNAPSHOT/

Cheers,

Stéphane

Hi,

I just grabbed that new snapshot version and re-run the same scenario.
It’s working just fine.
Cookies issues seem to be indeed fixed.

Thanks a lot!

Cheers,
Josselin

Wouhou!!!

Man, that was a hard one…

Thanks to you, you were the one to solve it in the end.

Cheers,

Steph