我在 JBossAS 5.1 GA 上部署了一个 Web 服务。要使用 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 webservices,还适用于任何使用 JAAS 身份验证的东西。