Jquery-POST geben, 403 forbidden-Fehler in spring mvc
Ich möchte einen ajax-Aufruf mittels $.POST. Aber ich bin immer Fehler 403. Aber BEKOMMEN funktioniert tadellos in Ordnung. Mein code ist:
var url = "/xyz/abc/subscribe?name="+name;
$.post(url, function(data){
alert(data);
});
Den controller-code ist :
@RequestMapping(value = "/xyz/abc/subscribe", method = RequestMethod.POST)
public @ResponseBody
String subscribe(@RequestParam("name") String name)
throws Exception {
String message = "TESTING";
return message;
}
Aber ich bin immer ein 403 Fehler.
Hast du irgendwelche Fehler in der Anwendung server-logs?
Nein...ich habe nicht finden keine Fehler.
Ich erhalte in den logs: org.springframework.Sicherheit.- Zugang.AccessDeniedException: Zugriff verweigert
403 bedeutet, dass der server korrekt authentifiziert den Benutzer, aber die Benutzer nicht die entsprechenden Rechte für die Ausführung der ausgewählten operation. Sind Sie mit Spring security? Wenn ja, poste die relevante Konfiguration
Ich hatte den ähnlichen Fehler und es ist immer noch nicht gelöst stackoverflow.com/questions/25800657/...
Nein...ich habe nicht finden keine Fehler.
Ich erhalte in den logs: org.springframework.Sicherheit.- Zugang.AccessDeniedException: Zugriff verweigert
403 bedeutet, dass der server korrekt authentifiziert den Benutzer, aber die Benutzer nicht die entsprechenden Rechte für die Ausführung der ausgewählten operation. Sind Sie mit Spring security? Wenn ja, poste die relevante Konfiguration
Ich hatte den ähnlichen Fehler und es ist immer noch nicht gelöst stackoverflow.com/questions/25800657/...
InformationsquelleAutor user3729782 | 2014-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung von Spring Security mit Java-Konfiguration, der CSRF-Schutz ist standardmäßig aktiviert.
In diesem Zusammenhang, dass, wenn Sie eine Ajax-Anfrage an einen REST-Endpunkt mit POST-Methode, erhalten Sie ein csrf-token fehlt Fehler.
Um dieses Problem zu lösen, gibt es zwei Möglichkeiten:
Option 1: Deaktivieren csrf
Option 2: Hinzufügen, csrf, um den ajax-request. Sehen hier
@Override
derconfigure
meint Ihr controller ist eine Unterklasse von was Typ/Klasse?Eine Unterklasse von org.springframework.Sicherheit.config.Anmerkung.web.- Konfiguration.WebSecurityConfigurerAdapter
Ein muss Blick auf dieses:- 16.3 Wann CSRF-Schutz, Wenn Sie verwenden sollten CSRF-Schutz? Unsere Empfehlung ist die Verwendung von CSRF-Schutz für jede Anforderung, die verarbeitet werden könnten, die von einem browser durch normale Benutzer. Wenn Sie nur einen service, der von nicht-browser-clients, werden Sie wahrscheinlich wollen, um zu deaktivieren CSRF-Schutz. SRC: docs.Frühling.io/spring-security/site/docs/current/Referenz/html/...
Hervorzuheben, dass die Option 1. wird nicht empfohlen, da es riskant sein kann.
InformationsquelleAutor Emiliano Schiano
Möchten Sie vielleicht hinzufügen das csrf-token in der Anfrage.
Erhalt der token unter Verwendung von JSTL sollte ziemlich einfach sein. Wenn Sie mit Thymeleaf, hier ist, wie um es zu bekommen.
Dann fügen Sie es zu Ihrer Anfrage:
Wenn alles gut geht, kann der Antrag sollte enthalten so etwas wie
_csrf:1556bced-b323-4a23-ba1d-5d15428d29fa (csrf token) und Sie erhalten eine 200 statt eines 403.
InformationsquelleAutor izilotti
Dies ist ein Beispiel ohne deaktivieren der CSRF-Angriffe.
Schritt 1: In Ihrem header hinzuzufügen, CSRF, wie dies
Schritt 2: Tätigen Sie einen Anruf mit token
InformationsquelleAutor VK321
Sie versuchen, eine POST-Anforderung an einen REST-Endpunkt, den Sie sind nicht berechtigt. Entweder ist Ihre Sitzung ist ungültig oder der Benutzer, den Sie in der Anmeldung als nicht die Autorität haben wie @geoand bereits hingewiesen.
InformationsquelleAutor Patrick Grimard