gpt4 book ai didi

spring - 添加Spring库以在Freemarker中使用JSP Taglib来提高安全性

转载 作者:行者123 更新时间:2023-12-04 03:59:19 27 4
gpt4 key购买 nike

我使用带有freemarker的spring作为模板引擎。 Freemarker允许使用Jsp Taglib,例如为了安全,通过添加

    <#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />

模板,例如,我可以使用什么
    <@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>

但是,Spring/Freemarker找不到标记库,除非将它们添加到类路径中,所以我添加了
    <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>

到我项目中的pom.xml。

但是无论如何,找不到标签!我必须将spring-security-taglibs.jar添加到WEB-INF/lib文件夹中才能找到标签。

有人知道为什么必须将jar显式添加到lib文件夹吗?在我的情况下,为什么他们没有被tomcat找到?

编辑@ddekany

谢谢你。如果未将spring-security-taglibs.jar复制到WEB-INF/lib目录,则堆栈跟踪如下:
    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
...

最佳答案

万一其他人碰到这个...
您需要添加spring支持文件,如此处概述(只是一些剪切和粘贴)http://static.springsource.org/spring-webflow/docs/2.2.x/reference/html/ch13s09.html

然后添加一些依赖项:

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>spring-faces</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>

假设其他所有工作正常,现在应该可以将taglib添加到页面中了。例如:

xmlns:sec =“http://www.springframework.org/security/tags”

你好用户

*必须添加一个空格b/f'sec'才能发布

关于spring - 添加Spring库以在Freemarker中使用JSP Taglib来提高安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com