我正在尝试使用Spring Security 3保护SOAP Web服务。
这是我的配置:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/myDB"
expected-type="javax.sql.DataSource" />
<http authentication-manager-ref="authenticationManager">
<intercept-url pattern="/**" access="ROLE_USER" requires-channel="https" />
<http-basic />
<logout logout-url="/logout" delete-cookies="JSESSIONID" />
</http>
<authentication-manager id="authenticationManager">
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource" />
</authentication-provider>
</authentication-manager>
Tomcat配置为SSL,使用包含服务器私钥的密钥库。我正在使用SOAPUI测试Web服务。我创建了一个执行服务提供的操作之一的请求。在Auth部分,我根据数据库中的值添加了测试用户的用户名和密码。发送请求后,我希望创建一个会话,并且不需要再次进行身份验证。在HTTP响应中,存在JSESSIONID cookie。当网站由同一机制保护时,用户只需输入一次凭据,直到其会话过期时需要重新进行身份验证。
我的配置有什么问题?
编辑:我忘了添加,当我多次重新发送相同的请求时,收到的JSESSIONID cookie始终具有不同的值。我是否应该期望它对于给定的会话是相同的?
答案 0 :(得分:0)
在TestCase选项下,您需要打开“维护HTTP会话”选项。不幸的是,你必须分别对每个测试用例执行此操作,没有全局选项。