2016-07-20 34 views
0

Ich habe ein Spring-Boot-Projekt mit Velocity Templating alle konfiguriert und funktioniert gut ...Warum wird das Attribut "_csrf" nicht innerhalb der Spring-Boot-Geschwindigkeitsansicht <head> Tags aufgelöst?

In meiner Geschwindigkeit Ansicht habe ich folgendes;

<head> 
    <!-- some other meta tags here --> 

    <meta name="csrf-token" content="$!_csrf.token"> 
</head> 

So sieht die Ausgabe aus, wenn ich in Chrom inspiziere;

<meta name="csrf-token" content="$!_csrf.token">


jedoch auf derselben Seite ich eine Form haben, die etwa wie folgt aussieht;

<form method="post" action="/post/to/wherever"> 
    <input type="hidden" id="csrf" name="$!_csrf.parameterName" value="$!_csrf.token" data-header="$!_csrf.headerName"/> 

    <!-- other fields here --> 

</form> 

Und die Browser-Inspektion zeigt Folgendes;

<input type="hidden" name="_csrf" value="69799b81-7c45-4042-9269-3a83769df682" data-header="X-CSRF-TOKEN">

So offensichtlich, wird die _csrf Attribut injiziert und gelöst in den Form Körper, aber nicht innerhalb der Kopf Meta-Tags.

FRAGE: Was würde so etwas verursachen?

Antwort

0

Ok Ich fand schließlich heraus, dass das, was hier geschah, auf eine sehr einfache Aufsicht zurückzuführen war.

Ich hatte die <head>...</head> Abschnitt in einer separaten Vorlage und war es in andere Vorlagen wie folgt enthalten;

#include("/pages/common/header.vm") 

Nun, für die Nutzer von Geschwindigkeit, dann ist es ganz offensichtlich, dass die oben enthält nur die Vorlage, wie sie ist (das heißt alle Inhalte wie Text übersetzt wird) und würde lösen keine Geschwindigkeits Kontext innerhalb erklärt Attribute. Also musste ich es einfach ändern, um die folgende

#parse("/pages/common/header.vm") 

Dies stellt sicher, dass alle Geschwindigkeits Attribute innerhalb der header.vm Vorlage deklariert werden, in geeigneter Weise analysiert und die Werte entsprechend zu lesen.

Ich war zunächst dachte, die Frage zu löschen gehe es nicht in erster Linie gefragt worden sein, aber ich erkennen, auch dies ist Stackoverflow, besser, nur die Fehler hinweisen und speichert jemand anderes einig etwas Zeit. Im Wesentlichen, machen Sie die Welt zu einem besseren Ort für alle ... Prost!