Ich habe einen Integrationstest in meiner Grails 3.2.2-Anwendung, der prüfen soll, ob die CORS-Unterstützung funktioniert. Wenn ich die Anwendung starte und etwas wie Paw oder Postman benutze, um eine Anfrage zu machen, zeigt der Breakpoint, den ich in CorsFilter eingestellt habe, dass meine Header richtig eingestellt sind. Aber wenn ich die gleiche Anfrage von einem Integrationstest unter Verwendung von RestBuilder mit dem folgenden Code mache:
%Vor%Der Haltepunkt in CorsFilter zeigt, dass beide Header null sind:
Und das Seltsame ist, dass, wenn ich in RestTemplate einen Haltepunkt setze, kurz bevor die Anfrage ausgeführt wird, die Header da sind:
Ich verstehe nicht, wie diese Header verschwinden können. Irgendeine Idee?
Ich habe kürzlich an diesem Problem gearbeitet, und obwohl ich nicht weiß, wo RestBuilder den Origin-Header unterdrückt, habe ich einen Workaround gefunden, um zu testen, ob die CORS-Unterstützung von Grails funktioniert: mit HTTPBuilder statt RestBuilder, um den Dienst aufzurufen.
Nach dem Hinzufügen von org.codehaus.groovy.modules.http-builder:http-builder:0.7.1
als testCompile-Abhängigkeit in build.gradle
und mit grails.cors.allowedOrigins
auf http://localhost
, funktionierten die folgenden Tests wie gewünscht: