客户端配置:
<!-- 输入流模型处理类 -->
<bean name="domInHandler" class="org.codehaus.xfire.util.dom.DOMInHandler"/>
<!-- 输入流操作处理类 -->
<bean name="wss4jInHandler" class="org.codehaus.xfire.security.wss4j.WSS4JInHandler">
<property name="properties">
<props>
<prop key="action">Signature Encrypt Timestamp</prop><!-- 认证类型 组合操作,空格分隔 Encrypt(解密), Signature(验证签名)-->
<prop key="decryptionPropFile">insecurity_enc.properties</prop><!-- 验证签名使用的密钥库数字证书配置 -->
<prop key="signaturePropFile">insecurity_sign.properties</prop><!-- 解密使用的私钥相关配置 -->
<prop key="passwordCallbackClass">密码回调类</prop><!-- 密码回调实现类 -->
<prop key="enableSignatureConfirmation">false</prop><!-- 如果设置, 与输出(请求)端一致 -->
</props>
</property>
</bean>
<!-- 输出流模型处理类 -->
<bean id="domOutHandler" class="org.codehaus.xfire.util.dom.DOMOutHandler"/>
<!-- 加密方式处理类 -->
<bean id="wss4jOutHandler" class="org.codehaus.xfire.security.wss4j.WSS4JOutHandler">
<property name="properties">
<props>
<prop key="action">Signature Encrypt Timestamp</prop>
<!-- 请求加密用户名 -->
<prop key="encryptionUser">test</prop><!-- 输入(响应)端, 用此用户名对应的密码, 解密 -->
<prop key="encryptionPropFile">outsecurity_enc.properties</prop><!-- 签名 -->
<prop key="signaturePropFile">outsecurity_sign.properties</prop><!-- 加密 -->
<prop key="user">agent</prop><!-- 用此用户名对应的密码,加密 -->
<prop key="passwordCallbackClass">密码回调类</prop>
</props>
</property>
</bean>
<!-- WebService 服务端配置 -->
<bean id="client" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="serviceClass">
<value>org.lei.Interface</value><!-- 服务接口 -->
</property>
<property name="wsdlDocumentUrl"><value>http://xx.xxx.xx.xx/services/xxx?wsdl</value><!-- WebService 服务地址 -->
</property>
<!-- 对输入流的操作 -->
<property name="inHandlers">
<list>
<ref bean="domInHandler"/><!-- 负责将STAX流模型的SOAP转换为DOM模型类 -->
<ref bean="wss4jInHandler"/><!-- 对用户名和密码进行检查 -->
</list>
</property>
<!-- 对输入流的操作 -->
<property name="outHandlers">
<list>
<ref bean="domOutHandler"/>
<ref bean="wss4jOutHandler"/>
</list>
</property>
</bean>
客户端的操作其实和服务端的操作基本一致, 也是要对输入和输出流分别按要求进行操作. 如设置认证类型及其顺序, 密码回调类的作用, 加密、签名属性文件的设置。
outsecurity_enc.properties……的属性文件与服务端使用的属性文件格式一致。
密码回调类:用法与服务端一致。
配置完成后, 便可使用 Spring 上下文内容对象 getBean(ID)的方法获取对象, 请求服务。
在使用过程中, 会遇到各种各样的异常情况. 这里就不详细说明了, 基本都是配置出错或缺少 Jar 包的问题导致。
-------
需要用的 Jar:
stax-api-1.0.1, jaxen-1.1-beta-9, jaxb-api-2.0, jaxb-impl-2.0.1, jaxb-xjc-2.0.1, wsdl4j-1.6.1, xfire-all-1.2.6, XmlSchema-1.4.2, wss4j-1.5.1, commons-lang-2.3, xmlsec-1.3.0, wstx-asl-3.9.2, xfire-jsr181-api-1.0-M1
分享到:
相关推荐
eclipse下spring+xfire实现ws-...数字签名和报文加密的安全认证,唯一不足的是没有实现数字签名和报文加密的混合模式(可能是密匙文件的问题,正在努力中),如果有疑问或更好的建议,请联系我,邮箱: windjie8@163.com
WS-Security(Web Services Security)是 Oasis 标准组织定义的一套用于保护Web服务交互的安全规范,它提供了消息认证、加密和签名等功能,确保数据的机密性、完整性和身份验证。 描述中的重复内容进一步强调了主题...
"xfire+spring+安全认证"的主题聚焦于如何利用XFire和Spring框架来实现安全的Web服务。XFire是一个用于创建、消费和部署SOAP Web服务的Java库,而Spring框架则是一个广泛使用的全功能应用开发框架,提供了包括安全性...
在这个示例中,我们将探讨如何在xfire1.2.6中实现和应用WS-Security。 WS-Security标准由OASIS(Organization for the Advancement of Structured Information Standards)制定,旨在提供一种在SOAP消息层进行安全...
综上所述,基于XFire实施WS-Security是实现Web Service安全的重要途径,它利用WS-Security标准在应用层提供了一套完整的安全策略。通过WSS4J和XFire的Handler机制,开发人员可以方便地对SOAP报文进行加密、签名和...
总结来说,"xfire+spring+webservice+client"是一个关于利用Spring和XFire集成实现Web服务客户端的议题,涵盖了从Web服务的基本概念到具体实现的多个层次。通过理解这些知识点,开发者可以有效地构建和维护自己的Web...
在SOAP消息中,`ws-security` 可以添加数字签名、加密、时间戳等元素,确保数据在传输过程中的安全。例如,`ws-security` 可以通过X.509证书进行公钥基础设施(PKI)的认证,也可以使用UsernameToken或 Kerberos ...
在提供的文档《xfire+spring2_5开发webservice接口的两种方式.mht》中,详细讲解了这两种方法的实现步骤、示例代码和注意事项。读者可以通过阅读该文档,了解如何在Spring 2.5版本下结合XFire创建Web服务。 另一份...
NULL 博文链接:https://zhaoshijie.iteye.com/blog/839050
xfire-spring-1.2.6-sources.jarxfire-spring-1.2.6-sources.jar
3. 创建Web服务:使用XFire提供的API或Spring-WS的注解来定义Web服务接口和实现。 4. 暴露服务:通过Spring的ApplicationContext,将Web服务发布到指定的URL。 5. 测试和调用:使用客户端工具(如cURL或测试类)进行...
标题中的“xfire+spring+maven构建webservice服务器和客户端”揭示了本教程将围绕三个主要技术进行讨论:XFire、Spring和Maven。这三者都是Java开发中不可或缺的工具,尤其在构建Web服务方面。 XFire是早期的一个...
《xfire与Spring Security整合实现WS-Security安全认证详解》 在现代企业级应用开发中,安全性是不可或缺的重要环节。Spring Security作为Java领域的安全框架,提供了全面的身份验证和授权服务。而Xfire(现已被...
3. **配置XFire**:在Spring配置文件中配置XFireBean,指定服务接口和实现类。 4. **启动服务**:通过Spring容器启动XFire服务发布器,服务即可对外提供。 5. **创建客户端**:使用XFire生成的客户端Stubs,调用服务...
这个案例中的压缩包文件可能包含了上述所有步骤的源代码示例,包括Spring配置文件、Java接口和实现类,以及可能的测试脚本。通过学习和分析这些文件,你可以更好地理解Spring和XFire如何协同工作,以及如何在实际...
XFire作为一个现代化的Web服务框架,它与Axis2齐名,但因其简洁的API和对Web服务标准的支持,如JSR181、WSDL2.0、JAXB2和WS-Security,受到了开发者的青睐。此外,XFire使用Stax解析XML,提高了性能,尤其是当它与...
项目中包含的`Spring+xFire+wss4j配置Helloworld完整版.doc`文档,应该详细阐述了每个步骤,包括项目结构、配置文件的设置以及如何运行服务端和客户端。而`xalan.jar`是一个XSLT处理库,可能在转换XML文档时被用到。...
本案例中的"xfire+spring+hibernate"是一种早期的整合方式,它将Web服务(通过XFire实现)、Spring框架的依赖注入与管理以及Hibernate的持久层处理结合在一起。以下是对这种整合方式的详细解释。 1. **XFire**:...