当前位置: 首页 > 知识库问答 >
问题:

使用Spring-Test-MVC单元测试spring-security-集成FilterChain/ServletFilter

章昊
2023-03-14
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = WebContextLoader.class, locations = {
        "file:src/main/webapp/WEB-INF/servlet-context.xml", "file:src/main/webapp/WEB-INF/dw-manager-context.xml" })
public class MvcTest {

    @Inject
    protected MockMvc mockMvc;

    @Test
    public void loginRequiredTest() throws Exception {

        mockMvc.perform(get("/home")).andExpect(status().isOk()).andExpect(content().type("text/html;charset=ISO-8859-1"))
        .andExpect(content().string(containsString("Please Login")));
    }

}

我怎么添加一个手动过滤器呢?web.xml不能是唯一的地方...

谢谢!

共有1个答案

姬慎之
2023-03-14

也许你可以嘲弄一下过滤链。在Spring有一个课程做那件事。代码看起来如下所示:

     MockHttpServletRequest request = new MockHttpServletRequest();
     request.setServletPath("/foo/secure/super/somefile.html");

     MockHttpServletResponse response = new MockHttpServletResponse();
     MockFilterChain chain = new MockFilterChain(true);

     filterChainProxy.doFilter(request, response, chain);

然后可以将org.springframework.web.filter.DelegatingFilterProxy实例添加到代码中的链中。类似于:

请参阅本论坛线程。

 类似资料:
  • 我正在尝试使用mvc-test测试我的登录页面。在我加入spring Security之前我工作得很好。 我的代码是: 测试类添加了正确的注释: 是否有任何方法可以添加DelegatingProxyFilter来使用在my security-context.xml中定义的配置测试上下文以使其工作?我尝试了一些关于注入FilterProxyChain的教程,但它在我的情况下不起作用。 有人能帮我吗?

  • 问题内容: 我的公司一直在评估Spring MVC,以确定我们是否应该在下一个项目中使用它。到目前为止,我喜欢我所看到的内容,现在,我正在查看Spring Security模块,以确定是否可以/应该使用它。 我们的安全要求非常基本。用户只需要能够提供用户名和密码即可访问网站的某些部分(例如获取有关其帐户的信息);并且网站上的页面很少(常见问题解答,支持等),应该为匿名用户提供访问权限。 在我创建的

  • 问题内容: 我有以下用于保存汽车的请求处理程序。我已经验证了使用cURL时的效果。现在,我想使用Spring MVC Test对方法进行单元测试。我试图使用fileUploader,但是我无法使其正常运行。我也无法添加JSON部分。 如何使用Spring MVC Test对该方法进行单元测试?我无法在此找到任何示例。 我想为自己的auto +一个或多个文件添加JSON表示形式。 问题答案: 由于已

  • Spring对MockMvc有2个设置: 独立设置 WebApplication Context安装 一般来说,MockMvc用于哪种测试?单元还是集成?或者两者兼而有之? 使用独立设置(运行在Spring应用程序上下文之外)允许您编写单元测试,而使用WebApplication Context设置您可以编写集成测试,这是对的吗?

  • 我有以下实现: 此安全性适用于正常运行的应用程序。但在测试中-失败。我有一个集成测试,如下所示: 运行后,我得到以下错误: null (为了简洁起见,删除了方法体和一些字符串) //编辑附加的丢失类,这些类被注入到:

  • 实际:200 我在MyController中有以下方法: 我创建了以下abstract-security-test.xml: