Я пытаюсь защитить веб-службу SOAP с помощью Spring Security 3.
Это моя конфигурация:
<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. Я создал запрос, который выполняет одну из операций, предоставляемых службой. В разделе Auth я добавил имя пользователя и пароль тестового пользователя в соответствии со значением, присутствующим в базе данных. После отправки запроса я ожидаю, что сеанс будет создан и повторная аутентификация не потребуется. В ответе HTTP присутствует файл cookie JSESSIONID. Когда веб-сайт защищен тем же механизмом, пользователь вводит свои учетные данные только один раз, пока не истечет срок его сеанса, когда ему потребуется повторная аутентификация.
Что не так с моим конфигом?
РЕДАКТИРОВАТЬ: я забыл добавить, что когда я повторно отправляю один и тот же запрос несколько раз, полученный файл cookie JSESSIONID всегда имеет другое значение. Должен ли я ожидать, что это будет то же самое для данного сеанса?