Spring filter and cookies - spring

I am facing issue while getting the cookie from subsequent request.
I have loginFilter where I am setting the cookie in response like below.
httpResponse.addCookie(new Cookie("TOKEN", "ABCXYSSSS"));
I can see both the cookies i.e JSESSIONID and TOKEN are avaiable in browser.
And when user access new request then I am getting only JSESSIONID in request, not getting TOKEN cookie in request
To get the cookie from repsonse
httpRequest.getCookies();
Could anybody provide me the input on this.

Related

Jmeter Cookie data is missing in request | Getting Object Moved in response and page is redirecting to login page itself again and again

Error in Cookie I'm working on Jmeter and found the authentication is set in cookies. I have added the cookie manager and still finding a redirected response. We have tried follow redirects and redirect automatically settings itself in Jmeter http request and After lot of tries I just found the cookie data is missing in the request sent to the servers.
Cookie Data:
CHMHC%2fMAS%2fWebPortal%2fv2019_testing2_Web.session=; n0=0%2c0%7c; m0=0%2C0%7C
This is after entering the credentials in Login page with Post request.
This is ASP.Net application
How to add this data along with the request sent.[Cookie Data entered partially][1]
Check this guide: https://www.blazemeter.com/blog/http-cookie-manager-advanced-usage-a-guide
You might have to turn on one setting in jmeter.properties

How To Remove CSRFTOKEN From The Cookie?

In Postman Or Jmeter, I want to call a POST API for 100 users in my collection, but after each user login, csrftoken is added to the cookie with the session, but the POST API fails when the cookie contains a csrftoken.
so how to delete the csrftoken from the cookie while maintaining the session ?
Use this as test-script in the postman request. (Note that you have to whitelist your domain in the cookie manager window if you run the collection from postman)
const cookieJar = pm.cookies.jar()
cookieJar.unset("domain.com", "csrftoken", function(error){
})
Refer documentation for more details
You don't need to remove this CSRF token cookie, you need to send correct one.
Not knowing the details of your application it is hard to say what exactly needs to be done, i.e. where the token comes from. If it is being sent by your application in the Set-Cookie header in JMeter it will be enough to add HTTP Cookie Manager
If it comes in the different header or in the response body - you will need to extract it from the previous response using a suitable JMeter Post-Processor and manually add the needed cookie in the HTTP Cookie Manager.
More information: How to Load Test CSRF-Protected Web Sites

Ajax request to Django only succeeds if there is no sessionid cookie

I have sessions enabled in Django to use Django's authentication framework.
From a html page served by Django, and after authenticating as a user with sufficient permissions, I'm trying to send a PATCH request via JQuery's ajax() function, and I'm getting HTTP 403 errors with the response detail CSRF Failed: CSRF token missing or incorrect.
What I've done so far:
I'm including the correct csrf token in the X-CSRF-TOKEN header field.
I've set SESSION_COOKIE_HTTPONLY = False.
The cookie sent in the ajax request includes the sessionid. If I get rid of this sessionid, the request succeeds.To do so, I either delete the session cookies in the browser or edit the PATCH request in the browser's developer tools and resend it with the sessionid deleted from the Cookie header field. Obviously I need to re-login as soon as I refresh the page, but in the meantime, I can PATCH to my heart's content.
So far I couldn't find out why the presence of the sessionid cookie makes Django deny the request.

How to get session cookies from response using Ext.Ajax.request ExtJS 6.2

I am trying to log in to a service using Ext.Ajax.request (ExtJS Version 6.2) by sending user id and password. A session cookie .ASPXAUTH is returned back in the response. I want to know about a way to get this cookie value, store it at client side and use it for further Ajax calls.
Assuming that the "cookie" is returned in the Set-Cookie HTTP response header, you don't need any additional steps to set it or "store it at the client side". As for the getting its value part, you can use the Ext.util.Cookies.get("cookieName") method.

Drupal services/cors api not accepting CSRF token

I am using polymer to send ajax requests to my Drupal services api.
I send a POST to login and then a POST to create a node. When I login I am given a token which I store and pass to the next request.
I am monitoring the the requests and responses with Charles, the token is being sent, the cookie is being set and passed on the 2nd POST but I get an "Unauthorized : CSRF validation failed" response.
When I send the request with Postman It works like a dream but for some reason it doesn't validate when sent with my app.
I have checked the token being set matches the one being sent and the only difference I've noticed is that when it's being sent again there is a prefix of ga_; something to do with google analytics?
The expiry of the token is a month away the token matches what is returned at login and is being sent correctly. The header accepts X-CSRF-Token in the Access-Control-Allow-Headers.
My CORS module code is:
api/*|<mirror>|GET, POST, PUT, OPTIONS|Authorization, Origin, Content-Type, X-CSRF-Token|true
If any body has a similar issue, mine was caused by a couple of things, running Drupal and my app in the same browser causing all kinds or cookie conflicts and when passing parameters to my function that computes my request, if there were any parameters that were not used it breaks.
Hope this helps someone.

Resources