apache axis 2 Web服务的用户身份验证

时间:2013-08-20 14:50:45

标签: java web-services tomcat axis2

我对此感到难过。 我想问一下,我怎么知道真正的客户端正在连接到我的Web服务。 我已成功在我的Web服务和我的apache tomcat服务器上设置HTTPs协议。 但是,如果没有他给我一个用户名和密码,我如何动态地验证客户端。例如,Google通过向客户提供api密钥对其客户端进行身份验证,并允许该密钥使用其Web服务。

我希望做类似的事情,我该怎么做? 希望你们能帮助我解决这个问题。

提前致谢!

2 个答案:

答案 0 :(得分:0)

您可能应该查看Apache Santuario项目,该项目旨在实现XML的主要安全标准。

- >该库包括成熟的数字签名和加密实现。它还包括标准的JSR 105(Java XML数字签名)API。应用程序可以使用标准JSR 105 API或Apache Santuario API来创建和验证XML签名。

您可以在以下网址找到更多信息 http://santuario.apache.org/index.html

您还可以在此处找到示例: https://svn.apache.org/repos/asf/santuario/xml-security-java/trunk/samples/org/apache/xml/security/samples/signature/

专门研究KeyResolver功能

Apache Santuario项目是Apache Axis推荐的项目。 http://axis.apache.org/axis/java/security.html#Authenticating_the_caller

答案 1 :(得分:0)

我们在这种情况下尝试的是真正的面向服务。

即。我们有一个身份验证服务,它将输入作为用户凭据并返回会话ID。对于所有其他服务调用,会话ID将添加到soapheader块中。

soapHeader.addAttribute()

使用这种方法

  1. 我们避免每次在服务调用中使用用户凭据详细信息。
  2. 该服务的签名也没有任何身份验证数据。
  3. 在这种方法中,客户端应用程序必须首先进行身份验证,并使用输出,会话ID进行其他服务调用。

    请求:我们还没有完全分析这种方法的安全威胁。任何建议/批评都将受到高度赞赏