Ho due diverse applicazioni web. L'app web di servizi ha definito i servizi REST. L'app Web del cliente ha pagine JSP che effettuano chiamate ai servizi REST utilizzando Ajax per ottenere i dati e visualizzarli nell'interfaccia utente. Voglio implementare OWASP CSRF Gaurd 3 per i miei servizi REST.
Come posso ottenere il valore del token CSRF nell'applicazione Client in modo che possa passare il valore del token come intestazione e i servizi di riposo vengono convalidati ed eseguiti?
Consentitemi di dire chiaramente la mia architettura.
Progetto di servizi - Si tratta di un progetto Spring / JPA con servizi web REST definiti. Questo progetto richiede di essere protetto con CSRF. Il suo contesto web è / Servizi. Quindi url potrebbe essere in localhost come http://localhost:8080/Services/RESTSERVICE
Progetto client - È un progetto JSP / Servlet con pagine web jsp / html. Questo progetto effettua chiamate AJAX ai servizi REST del progetto Servizi per recuperare i dati e mostrarli nell'interfaccia utente. L'URL è come http://localhost:8080/Client/index.jsp
Ora il mio dubbio è se implemento CSRF Guard in Services Project, progetto client richiesto token CSRF per chiamare i servizi REST protetti. Come posso ottenere questo valore del token nelle pagine jsp dei progetti del cliente?
Ho provato ad aggiungere cookie alla risposta dei servizi di restituzione, ma il javascript del Cliente non è in grado di leggerlo, quindi con i cookie non ero in grado di condividere il token con il client. C'è qualche altro approccio? Qualsiasi aiuto sarà apprezzato ...