我正在尝试使用 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 总是有不同的值。对于给定的会话,我是否应该期望它是相同的?