gpt4 book ai didi

java - JAXWS 和 session

转载 作者:行者123 更新时间:2023-11-30 05:59:40 24 4
gpt4 key购买 nike

我对编写网络服务相当陌生。我正在使用 JAXWS 开发 SOAP 服务。我希望能够让用户登录并在我的服务中知道哪个用户正在发出命令。换句话说,进行一些 session 处理。

我见过的一种方法是使用 cookie 并从我的 Web 服务访问 HTTP 层。然而,这依赖于使用 HTTP 作为传输层(我知道 HTTP 几乎总是传输层,但我是一个纯粹主义者)。

是否有更好的方法使服务层不知道传输层?有什么方法可以使用 servlet 过滤器来完成此任务吗?我希望答案尽可能与框架无关。

最佳答案

I'm working on a SOAP service using JAXWS. I'd like to be able to have users log-in and in my service know which user is issuing a command. In other words, have some session handling.

传统的 Web 服务本质上是无状态的,Web 服务中没有 session 处理(这与识别调用者无关)。

如果您希望要求用户经过身份验证才能调用服务,传统方法是:

  1. 公开返回身份验证 token 的“身份验证”Web 服务(传递用户凭据)。
  2. 让用户首先调用此身份验证。
  3. 让用户在后续调用“业务”网络服务时在自定义 header 中传递 token 。

在服务器端:

  1. 拒绝任何不包含有效 token 的调用。
  2. 一段时间不活动后使 token 失效

您可以为此方法实现自定义解决方案(这是一个高度可互操作的解决方案)。或者您可以使用WS-Security/UsernameTokens它提供了类似的开箱即用的东西。 WS-Security 是一个标准(Metro 实现了它),它不是特定于“框架”的。

关于java - JAXWS 和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com