Expand my Community achievements bar.

SOLVED

403 forbidden for some of the POST operations

Avatar

Level 3

Hi,

For some of the POST operations, we are getting the response as 403 forbidden. This work fine when "POST" operation is removed from Apache Sling Referrer Filter.We have added the js <cq:includeClientLib categories="granite.csrf.standalone"/>. But still the response is 403.

When we checked the form data from the reqest the attribute :cq_csrf_token is missing in those ajax call which is getting failed. Have any one of you faced similar issue?

Please advice.

Thanks,

Akhila

1 Accepted Solution

Avatar

Correct answer by
Level 3

Yes, we are using Jquery Ajax to perform the operation. Now we have fixed the issue by adding the token to the form data using jquery.

View solution in original post

9 Replies

Avatar

Administrator

Check this this gets fixed after removing the 'POST' method for Filter Methods property in Apache Granite CSRF Filter configuration.



Kautuk Sahni

Avatar

Level 3

yes, it is working when POST is removed from CSRF filter. But we will not be able to do this as security fails.

Thanks,

Akhila

Avatar

Level 3

Note: Sorry, The configuration name I have mentioned is wrong. It is "Apache Granite CSRF Filter " instead of "Apache Sling Referrer Filter"

Also the exception I am getting is as below.

com.adobe.granite.csrf.impl.CSRFFilter isValidRequest: empty CSRF token - rejecting

com.adobe.granite.csrf.impl.CSRFFilter doFilter: the provided CSRF token is invalid

Apache Granite CSRF Filter

Avatar

Level 10

Are you using Adobe JQuery to perform the AJAX operation.

Avatar

Correct answer by
Level 3

Yes, we are using Jquery Ajax to perform the operation. Now we have fixed the issue by adding the token to the form data using jquery.

Avatar

Level 2

Hi Akhila

Add cq.jquery as a dependency in your clientlib and see if it resolves the issue.

Avatar

Level 3

Hi Kumar,

We tried this, but still not working. As I have mentioned above, for some of the form submit, it is working, but in some it is not.

Thanks,

Akhila

Avatar

Level 2

Hi Akhila

We had the same issue. The CSRF token was not passed in the form POST. We included the cq.jquery in the head and it worked for us:

<sly data-sly-use.clientLib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientLib.all @ categories='cq.jquery'}"/>

But I think it didn't resolve the issue you are having.