覆盖Spring身份验证提供程序

时间:2014-05-22 23:51:41

标签: java maven spring-security selenium-webdriver tomcat7

我正在使用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文件,但这不起作用。

由于

0 个答案:

没有答案