0

我有一个基于 Java SE 6 的 JAX-WS Web 服务。有一个 Web 服务方法,它通过 HTTP 登录应用程序服务器并读取信息。

如果客户端使用正确的用户名和密码调用 Web 服务方法,它将在应用服务器上进行身份验证,然后从应用服务器获得响应。

然后,如果第二个客户端使用错误的用户名/密码调用 Web 服务方法,它将获得身份验证并接收机密信息 - 这是错误的行为。

只有在这两个客户端调用之间重新启动 Web 服务服务器时,如果用户名/密码错误,第二次调用才会被拒绝。

似乎一旦创建了经过身份验证的连接,Web 服务服务器就会保持对应用程序服务器的身份验证,然后不再需要对后续调用进行身份验证。

我的问题是,如何使 Web 服务方法的 2 次调用完全隔离?

4

2 回答 2

0

只是在这里猜测,但您是否将身份验证令牌作为实例变量存储在 WS servlet 中?

干杯,

于 2012-10-23T10:06:28.140 回答
0

您有两个选择 - 使您的 Web 服务类似于 RESTful(通过每个请求传递您的身份验证详细信息,并且不要在 Web 服务本身中存储任何状态信息,或者确保您在 Web 服务和您的客户端之间传递和验证 sessionID。
但是如果没有看到你的代码,很难说在这种情况下什么是更好的方法。

于 2012-10-23T10:37:51.917 回答