我正在使用maven运行tomcat实例来进行一些集成测试。我正在使用tomcat7-maven-plugin
工件。当tomcat启动时,由于我web.xml
的这一块,它将一堆Spring配置文件bean加载到上下文中:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mspWebManager-root.xml</param-value>
</context-param>
在配置中,此xml定义了Spring Security的身份验证提供程序:
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider ref="preauthAuthProvider" />
</sec:authentication-manager>
在我的集成测试中,我想覆盖该身份验证提供程序,以基本上允许所有请求通过。
我目前的尝试:
我的测试用例中有这段代码:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations={"classpath:/mpsWebManager-test-context.xml",
"classpath:/mspWebManager-security-test-context.xml"})
public class SeleniumIT {....test cases....}
mspWebManager-security-test-context.xml
内部是这个xml:
<authentication-manager>
<authentication-provider user-service-ref="userDetailsServiceMock"/>
</authentication-manager>
但是,当我在我的测试用例中发出请求时(我使用Selenium btw发出请求),之前定义的preauthAuthProvider
总是被使用。 有没有办法覆盖这个?
我对Spring和tomcat相对较新,所以我愿意接受有关最佳方法的建议。我尝试过的另一件事是设置maven测试配置文件以尝试让tomcat使用不同的web.xml文件,但这不起作用。
由于