我需要使用spring嵌入LDAP服务器以进行测试。以下代码有效:
的src /主/ web应用/ WEB-INF / web.xml中
[...]
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
[...]
com.example.config.servlet.TestLDAPServerConfiguration
</param-value>
</context-param>
[...]
的src /主/ JAVA / COM /示例/配置/ servlet的/ TestLDAPServerConfiguration.java
package com.example.config.servlet;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource({"/WEB-INF/test-ldap-server.xml"})
public class TestLDAPServerConfiguration {
}
的src /主/ web应用/ WEB-INF /测试LDAP的server.xml中
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:s="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
<s:ldap-server ldif="classpath:users.ldif" root="dc=nestle,dc=com" port="33389"/>
</beans>
我确实需要使用AnnotationConfigWebApplicationContext而不是XmlWebApplicationContext。但是,这里我使用的是一个TestLDAPServerConfiguration类,它只导入一个test-ldap-server.xml,这个test-ldap-server.xml只是声明了ldap-server。
我想删除test-ldap-server.xml文件。如何在TestLDAPServerConfiguration类中使用java代码执行s:ldap-server的等效操作?这记录在哪里?
答案 0 :(得分:0)
尝试这样的事情;
protected static ApacheDSContainer server;
@BeforeClass
public static void startServer() throws Exception {
server = new ApacheDSContainer( "dc=yourdomain,dc=com", "classpath:test-server.ldif" );
server.setPort( 53389 );
server.afterPropertiesSet();
server.start();
}
@AfterClass
public static void stopServer() throws Exception {
if( server != null ) {
server.stop();
}
}
您可以从spring-security-ldap源代码获取指南。