Ich baue eine RESTful Spring Boot und React/Alt-Anwendung. Ich möchte Spring-Sicherheit hinzufügen, um sicherzustellen, dass keine nicht authentifizierten Anfragen an die API gesendet werden können.Spring Boot Security und Auth0 - CSRF kann nicht deaktiviert werden
Ich benutze Auth0 für einen Authentifizierungsanbieter, damit Benutzer sich bei der Anwendung anmelden können, genauer gesagt, die Bibliothek feather-security-auth0, um die serverseitigen Sicherheitsaspekte zu behandeln. https://github.com/auth0/spring-security-auth0
Nach dem Grund Tutorial auf Auth0 folgenden, ich habe die Sicherheit config in meiner Feder Anwendung so konfiguriert, dass Anfragen an die API nicht ohne JSON Web-Token funktionieren wird. Dies funktioniert, aber es gibt einige Endpunkte (solche, die einen POST benötigen) in den Controllern, die dies nicht tun. Ich erhalte diese Fehler in Chrome devtools -
Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'
Ich verstehe, dass es keine CSRF-Header vorhanden ist und das ist, warum es nicht funktioniert. Aber der Hauptgrund, warum ich verwirrt bin, ist, weil ich CSRF deaktiviert habe und es immer noch passiert. Da die Feder docs anweisen, habe ich dies getan -
@Configuration
@EnableWebSecurity
@ComponentScan("com.auth0")
@ImportResource("classpath:auth0-security-context.xml")
@PropertySource("classpath:auth0.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
Ich brauche CSRF nicht in diesem Fall als die App wird immer nur in einer Entwicklungsumgebung verwendet werden. Warum passiert das immer noch, obwohl ich CSRF vollständig deaktiviert habe?
Ja ich das getan hatte, aber ich bin nicht sehr vertraut mit XML-Konfiguration im Frühjahr. Ich entschied mich, den Authentifizierungs-XML-Kontext Auth0 in Java Config zu konvertieren und CSRF dort zu deaktivieren. Alles funktioniert jetzt, danke! –