繁体   English   中英

使用Spring MVC集成测试时,Spring Security Taglib不可见

[英]Spring security taglib is not visible while using spring mvc integration tests

我正在尝试使用MockMvc类进行一些“集成”测试

我用:

this.mockMvc.perform(
            get("/admin"))
                    .andExpect(status().isOk())
                    .andDo(print());

但是负责生成页面的freemarker正在使用安全性taglib

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

Maven的依赖:

  <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

测试时似乎不可用。例外:

The following has evaluated to null or missing:
==> security  [in template "lib/abc.ftl" at line 170, column 19]

应用程序本身可以正常工作,但是我必须使用mvn tomcat:run-war而不是mvn tomcat:run来获得taglib。

我不得不复制

~/.m2/repository/org/springframework/security/spring-security-taglibs/3.2.0.RELEASE/spring-security-taglibs-3.2.0.RELEASE.jar 

到我的WEB-INF / lib文件夹。 然后我遇到了另一个关于Missiong'Tag'类的问题,所以我不得不添加

 <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>

复制粘贴该jar文件似乎是一种肮脏的解决方法..请让我知道是否有更好的解决方案。

编辑

有一种使用mvn tomcat7:run而不是run-war来运行它的方法,因此可以在不重新启动服务器的情况下加载taglib和刷新模板文件。 只需添加

<jarScanAllDirectoriescontextReloadable>true</jarScanAllDirectoriescontextReloadable>
<contextReloadable>true</contextReloadable>

到pom.xml中的tomcat7-maven-plugin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM