Я развернул веб-сервис на JBossAS 5.1 GA. Чтобы использовать базовую аутентификацию HTTP, класс SBC аннотируется следующим образом:
@Stateless
@SecurityDomain(value = "MyWSSecurity")
@RolesAllowed(value = "WebserviceUser")
@WebContext(contextRoot="/MyWS", urlPattern="/*", authMethod="BASIC", transportGuarantee="NONE", secureWSDLAccess=true)
@WebService(endpointInterface = "MyWS")
public class MyWSImpl implements MyWS {
public String doSomething() {
return "something";
}
}
Обычно это работает нормально. Но следующий сценарий беспокоит меня.
Пользователь, который находится в роли WebserviceUser, вызывает службу.
Роль Webservice теперь отбирается у пользователя.
Проблема: он все еще может позвонить в службу.
Полагаю, это происходит потому, что учетные данные и роли пользователя хранятся в объекте HttpSession на стороне сервера. После перезапуска сервера пользователю отказано в вызове сервиса.
Что я могу с этим поделать?
Привет
РЕДАКТИРОВАТЬ: Эта проблема относится не только к веб-сервисам JBOSSWS EJB3, но и ко всему, что использует аутентификацию JAAS.