如何通过登录和会话处理保护Java Web服务

如何通过登录和会话处理保护Java Web服务,java,web-services,session,java-metro-framework,java-ws,Java,Web Services,Session,Java Metro Framework,Java Ws,我想通过登录来保护我的(Java metro)Web服务 以下是我的计划: 调用webservice方法时需要执行以下步骤: 呼叫登录(用户,pwd),接收会话令牌 1.1记住标记 调用servicemethod(令牌、arg1、arg2…) webservice检查令牌是否已知,如果未知,则抛出异常,否则继续 x个非活动时间段后注销或超时 我的问题是: 1.你对这种方法有什么看法?这有意义吗? 2.是否有任何库承担了编写会话处理的负担(可能需要数据库持久性才能在应用程序重启后生存) (该解决方

我想通过登录来保护我的(Java metro)Web服务

以下是我的计划:

调用webservice方法时需要执行以下步骤:

  • 呼叫登录(用户,pwd),接收会话令牌 1.1记住标记
  • 调用servicemethod(令牌、arg1、arg2…)
  • webservice检查令牌是否已知,如果未知,则抛出异常,否则继续
  • x个非活动时间段后注销或超时
  • 我的问题是: 1.你对这种方法有什么看法?这有意义吗? 2.是否有任何库承担了编写会话处理的负担(可能需要数据库持久性才能在应用程序重启后生存)

    (该解决方案应简单且易于使用Java和.NET客户端)


    谢谢

    不要马上自己动手实施。许多J2EE容器/Java框架都支持登录/访问控制。查看您当前使用的框架的文档


    另一个简单的选择是在前端Web服务器中实现访问控制;e、 apachehttpd充当Tomcat的反向代理。

    这是可行的,我见过web服务使用类似的方法。但我不会实现自己的定制解决方案。相反,我将使用WS-Security规范中的安全令牌,更确切地说是用户名令牌(您可以从中获得它,它是Metro的一部分,因此可以与.NET客户端进行互操作)。请看下面的介绍

    更新:更多指针:

    我不能说我发现WS-Security非常友好,但我的经验是,使用WS-Security比实现自定义解决方案花费的时间更少,更安全,可扩展性更好(每次调用时检查数据库都要付出代价)

    编辑:


    更正了前两个链接,因为它们已经死了。第三部找不到一部,但我认为第二部应该涵盖这一点。

    我考虑过试一试,我真的说不出是否有什么好处。看起来不错。

    我创建了一个有状态的java服务,但是当我将它与asp.net一起使用时,我得到了以下错误:“这是一个有状态的web服务,需要{}objectId头。”。。有什么想法吗?谢谢你的链接,但老实说,对我来说,这一切看起来都很复杂。你有一个如何使用用户名令牌的例子吗?尤其是ASP.NET客户端?我真的被卡住了,对我来说,似乎还没有多少人在使用它。