Hinzufügen Feder-Bibliothek für die Verwendung von JSP-Taglibs für die Sicherheit in Freemarker
Bin ich mit spring mit freemarker als template engine. Freemarker ermöglicht die Verwendung der Jsp-Taglibs, für Sicherheit, zum Beispiel, durch hinzufügen
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
den Vorlagen, was mir erlaubt, zu verwenden, zum Beispiel
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
Aber, im Frühling/Freemarker kann nicht finden die taglibs, es sei denn, Sie sind, werden dem classpath Hinzugefügt, so fügte ich
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
meine pom.xml in meinem Projekt.
Aber wie auch immer, die tags nicht gefunden werden konnte! Ich hatte, um die spring-security-taglibs.jar in WEB-INF/lib-Ordner für die tags gefunden werden.
Weiss einer warum das Glas Hinzugefügt werden explizit in das " lib " - Ordner?? Warum sind Sie nicht gefunden von tomcat, in meinem Fall?
EDIT @ddekany
Danke. Der stacktrace ist die folgende, wenn die spring-security-taglibs.jar ist nicht kopiert und in das WEB-INF/lib-Verzeichnis
No mapping defined for http://www.springframework.org/security/tags
The problematic instruction: ---------- ==> assignment:
security=JspTaglibs["http://www.springframework.org/security/tags"]
[on line 12, column 1 in home.ftl] in user-directive content.main
[on line 8, column 9 in home.ftl] in user-directive layout.global
[on line 2, column 1 in home.ftl]
---------- Java backtrace for programmers: ----------
freemarker.template.TemplateModelException:
No mapping defined for http://www.springframework.org/security/tags at
freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:180) at
...
- Ich denke, man sollte auch die genaue Fehlermeldung in deine Frage. Auch glaube ich nicht, dass die JSP-Spezifikation übersättigt, dass sieht es für die taglibs (
tld
-s) mit der aktuellen(?) class-loader oder so, aber ich bin vielleicht falsch, dass.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Fall, jemand läuft in diesem...
Müssen Sie den spring support-Dateien, wie hier beschrieben (nur einige cut & paste) http://static.springsource.org/spring-webflow/docs/2.2.x/reference/html/ch13s09.html.
Und fügen Sie dann einige Abhängigkeiten:
Vorausgesetzt, Sie haben alles andere funktioniert, sollten Sie nun in der Lage, fügen Sie die taglib zu Ihren Seiten. Zum Beispiel:
xmlns:sec="http://www.springframework.org/security/tags"
< sec:autorisieren ifAllGranted="USER_ROLE">
Hallo Benutzer
< /sec:autorisieren>
*hatte ein Leerzeichen hinzufügen b/f 'sec', um es zu veröffentlichen
spring-faces
war 2.4.1.Verwenden Sie diese Maven-dependency:
org.springframework
undorg.springframework.security
sind verschiedene frameworks mit unterschiedlichen Versionsnummern.Haben Sie die
JspSupportServlet
wie gesagt hier und hier[BEARBEITEN]
Nach der Lektüre Ihrer post ein bisschen mehr aufpassen, dass ich Ihnen raten, das Lesen Sie im Abschnitt "JSP.7.3.2" (und weiter) von der JSP-Spezifikation.
JspSupportServlet
wie Sie vorgeschlagen, aber der Fehler ist immer noch der gleiche. Suche im Abschnitt "JSP.7.3.2" in der JSP-Spezifikation der wesentliche Teil denke ich, ist diese: "Die TLD-Ressource-Pfad interpretiert wird relativ zum Stammverzeichnis der Webanwendung und beheben sollten, um eine TLD-Datei direkt, oder zu einer JAR-Datei hat eine TLD-Datei am Speicherort META-INF/taglib.tld". Ist das die Antwort, warum tomcat nicht finden können, den META-INF/*.tld Datei? Weil ich es über ein maven-Abhängigkeit?