在Java Soap服务中使用https

3

我刚接触spring-ws和SOAP,对于传输到我的SOAP服务的信息安全非常关注。

我想使用某种类型的HTTP授权,但似乎这并不是通过spring-ws API完成的。

  • 有没有人知道有关此操作的相关信息?
  • 您有什么建议吗?

我承认在安全策略方面我的知识不足,因此任何帮助都会受益匪浅。

顺便说一下,我正在使用Glassfish 3作为我的应用服务器。

编辑:我不是试图将安全功能放入SOAP消息中。我正在发送客户信息,因此HTTP消息必须加密。进行身份验证以确保请求来自正确的人(因此随机用户无法使用我的SOAP服务)将是一个重要的加分项。


“安全”这个词具体指什么 - 你只是想保护通过网络传输的信息,还是需要身份验证/授权或两者兼备? - maximdim
我想通过加密信息来验证用户身份。 - thatidiotguy
3
在我看来,最简单的方法就是配置您的Web容器以使用SSL和客户端身份验证。这可能适用于您的情况(例如,如果您提供的是公共服务,则可能不想分发客户端证书等),但这样您的传输将被加密和身份验证,而您的Web服务不需要处理任何这些细节。 - maximdim
你能详细说明一下如何做到这一点吗?我在安全方面是个新手,因为我只有一年的专业开发经验,对这方面的东西真的一无所知。但你所说的正是我想要做的,我想把安全性从SOAP消息中剔除。 - thatidiotguy
1
配置HTTP安全性是针对容器的特定设置。你的目标部署环境是什么? - maximdim
当你说容器时,你具体指的是什么?它将在带有Apache的Linux盒子上的Glassfish应用服务器上。 - thatidiotguy
3个回答

3
如果您想使用SSL客户端身份验证,则需要进行特定于容器的配置。例如,如果您的目标部署是Glassfish,则可以先阅读本文档此处
请记住,使用SSL客户端身份验证时,您需要处理发出客户端证书(通过自己的CA)或接受现有客户端证书的问题。如果您处于更多或更少受控制的环境中(例如B2B),则这可能是可接受的,但如果您尝试构建公共网络服务,则会带来实际麻烦。请阅读有关SSL客户端身份验证、证书等方面的文章 - 网络上有大量相关信息。

2

这里有一个完整的章节描述了Spring WS的安全方面,请点击这里查看。


编辑:关于SO上的更多信息。


是的,我有这个问题,但我的意思是我想通过http来实现所有的安全性,而不是在实际的soap消息中。正如您从该页面中看到的那样,它甚至说“请注意,明文密码并不是非常安全的。因此,如果您正在使用它们(例如使用HTTPS而不是纯HTTP),则应始终添加其他安全措施到您的传输层。”但它从未解释如何做到这一点。我的问题是如何做到这一点?这是应用服务器完成的吗?在我的应用程序上下文中设置?硬编码等。 - thatidiotguy

1

我喜欢这篇文章描述HTTPS和WSS之间的区别。它可能对你有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接