0

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

4

1 回答 1

0

在 TestCase Options 下,您需要打开“Maintain HTTP Session”选项。不幸的是,您必须分别为每个测试用例执行此操作,对此没有全局选项。

于 2015-04-01T21:43:37.237 回答