我们要求在IBM Websphere Integration Developer 6.1中创建具有用户名令牌安全性的Web服务。现在,为了测试这一点,我们必须用Java开发Web服务客户端。要求是使用Apache Axis2完成此操作。在对此进行了大量阅读之后,我能够使用Axis2为简单的Web服务生成客户端,该服务不需要身份验证,我能够正确地进行测试。但我知道为了使用带有axis2的UserName令牌安全性,需要使用rampart。
现在我需要知道如何在eclipse中使用Rampart和Axis2。我们的系统中没有安装apache服务器,但我们在eclipse中部署它。 即使在阅读了很多同样的文章之后,我也无法让Rampart工作。
有人可以指导我完成在eclipse中配置Rampart的步骤,以及如何使用UserName令牌将其用于WebService客户端生成吗?
到目前为止,使用Axis2我曾经做过以下步骤。 1.创建Java项目并将所需的WSDL导入其中。 2.使用WSDL,我创建WebServiceClient并生成以下类型的文件 一个。一个java接口文件 湾一个Java代理文件,它实现了一个提到的接口。 C。一个java存根文件,它扩展了org.apache.axis.client.Stub并实现了一个提到的接口。 d。一个java服务文件,它也是一个接口 即实现上述接口的java ServiceLocator文件。
因此,我还需要知道如何使用这些文件来测试用户名令牌Web服务。
当我使用Dynamic Web项目执行上述操作并右键单击WSDL并单击generate client时,将创建ServiceCallBackHandler.java和HttpSrviceStub文件。我如何使用它们来实现测试?
感谢。
答案 0 :(得分:2)
我没有在用户名令牌中使用rampart,但对于我的服务(签名和加密),IBM文档确实非常有用。看看:http://www.ibm.com/developerworks/java/library/j-jws4/ Java Web服务:Axis2 WS-Security基础知识;了解如何将Rampart安装到Axis2中并实现UsernameToken处理
对于我的项目,当我使用WS-Security(工作环境)和没有WS-Security(测试环境)时,Java源代码是相同的。我必须在客户端执行此操作以启用/禁用my_client/axis-repo/conf/axis2.xml
的rampart配置。请查看:http://wso2.org/library/240,您可以在其中找到可能对您有用的示例配置:
<parameter name="OutflowSecurity">
<action>
<items>UsernameToken</items>
<user>bob</user>
<passwordCallbackClass>org.apache.rampart.
samples.sample02.PWCBHandler</passwordCallbackClass>
</action>
</parameter>
答案 1 :(得分:1)
首先,你必须在axis2模块文件中加载rampart模块文件。 然后在lib文件夹中加载rampart所需的库。然后使用一个回调处理程序类,其中你已经定义了用户名和密码的逻辑。 所有上述内容均可在ramart源代码和rampart文件夹中使用。必须从垒网站下载 之后在axis2.xml中你必须定义标签
<parameter name="InflowSecurity">
<action>
<items>UsernameToken</items>
<user>jaideep</user>
<passwordCallbackClass>com.mltvacations.externalapi.callbackhandler.PasswordCallbackHandler</passwordCallbackClass>
<passwordType>PasswordText</passwordType>
</action>
</parameter>
带有in标签的然后运行Web服务并复制wsdl的地址并放入soapUi,然后添加身份验证标头。并检查它。
如果有任何问题,请告诉我。我会给你满意的答案,因为我已经使用了垒垒安全。