0 0

CXF WS-Security 异常问题。急求。#########3

javax.xml.ws.soap.SOAPFaultException: MustUnderstand headers: [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood.
	org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
	$Proxy37.loadAlarmRecordByUsername(Unknown Source)


仅仅是做了一个简单的 usernameToken配置如下:

服务端
<cxf:bus>
	    <cxf:features>
	      <bean class="org.apache.cxf.feature.LoggingFeature" />
	    </cxf:features>
	    <cxf:inInterceptors>
	       <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
		      <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
		         <constructor-arg>
		            <map>
		               <entry key="action" value="UsernameToken"/>
		               <entry key="passwordType" value="PasswordText"/>
		               <entry key="passwordCallbackRef">
		                   <ref bean="wsPasswordVerify"/> <!-- 此bean在applicationContext.xml 中有配置 -->
		               </entry>
		            </map>
		         </constructor-arg>
		      </bean>
	    </cxf:inInterceptors>
    </cxf:bus> 
    
	<jaxws:server id="alarmWebService" serviceBean="#alarmService"
		address="/alarm" bus="cxf"> <!-- bus="cxf"> -->
	</jaxws:server>


客户 端

 <!-- 客户端验证设置 -->
   <bean id="clientPasswordCallback" class="com.yixun.middleware.client.handler.ClientPasswordCallback" /> 
   <bean id="saajOut" class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />  
   <bean id="wss4jOut" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">  
        <constructor-arg>  
            <map>  
                <entry key="action" value="UsernameToken" />  
                <entry key="passwordType" value="PasswordText" />  
                <entry key="user" value="yixun" /> 
                <entry key="passwordCallbackRef">    
                     <ref bean="clientPasswordCallback" />    
                </entry>    
            </map>  
        </constructor-arg>  
    </bean>  
    
    <cxf:bus>
	    <cxf:features>
	      <bean class="org.apache.cxf.feature.LoggingFeature" />
	    </cxf:features>
	    <cxf:outInterceptors>
            <ref bean="saajOut" />  
            <ref bean="wss4jOut" />  
	    </cxf:outInterceptors>
    </cxf:bus> 
    
    <bean id="#alarmService" class="com.yixun.middleware.service.AlarmService" 
      factory-bean="alarmServiceFactory" factory-method="create"/>
	<bean id="alarmServiceFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
	  <property name="serviceClass" value="com.yixun.middleware.service.AlarmService"/>
	  <property name="address" value="http://192.168.10.18:8080/middleware-server/services/alarm"/>
	</bean>



求解异常解决方法..
2012年2月08日 09:07

2个答案 按时间排序 按投票排序

0 0

Map<String, Object> outProps = new HashMap<String, Object>();
outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
outProps.put(WSHandlerConstants.USER, "admin");
outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
outProps.put(WSHandlerConstants.MUST_UNDERSTAND, "0");
outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, WsClinetAuthHandler.class.getName());
ArrayList list = new ArrayList();
list.add(new SAAJOutInterceptor());
list.add(new WSS4JOutInterceptor(outProps));

要设置WSHandlerConstants.MUST_UNDERSTAND为"0"

2015年12月02日 02:29
0 0

同样遇到这个问题。

2015年12月02日 02:25

相关推荐

    CXFWS-Security

    1)参考: ...2)CXFWS工程是基于WS-Security规范,实现X.509身份验证的,同时实现签名和加密 keytool 工具的使用参考 http://hi.baidu.com/qianshuifanchuan/blog/item/6291b8510009ad3c42a75b8e.html ...

    纯java调用ws-security+CXF实现的webservice安全接口

    本文将深入探讨如何使用CXF框架结合ws-security标准来实现对Java客户端调用Web服务的安全接口。CXF是一个开源的服务框架,它允许开发人员创建和消费各种Web服务,而ws-security(Web Services Security)则是用于...

    CXF WS-Security WSS4J 例子

    在CXF中,WS-Security(Web Services Security)是一种关键的安全机制,用于确保Web服务的安全通信。WSS4J(Web Services Security for Java)是Apache的开源库,它为Java应用程序提供了实施WS-Security标准的功能。...

    ws-security 和wss4j的jar包

    WS-Security(Web Services Security)是由OASIS组织制定的一套标准,它定义了一系列的安全机制来保护Web服务消息,包括认证、加密、完整性保护等。而Apache WSS4J(Web Services Secure Utilities for Java)则是...

    cxf+ws-security-JAR

    综上所述,"cxf+ws-security-JAR"是针对Web服务安全调用的解决方案,通过Apache CXF和WS-Security标准,为Web服务提供了强大的安全保障,确保了敏感数据的传输安全和用户身份的有效验证。这个JAR包很可能包含了一些...

    cxf ws-Security的实现

    cxf ws-Security的实现 WS-SecurityPolicy 安全配置指定在客户机和服务之间交换的消息所需的安全处理。在大多数情况下,Web 服务堆栈还需要更多信息,才能对消息交换应用安全措施。 里面有2个project,分别server ...

    ws-security jar

    在Java中,通常使用Apache CXF、Axis2等Web服务框架,它们内置了对WS-Security的支持。 使用"ws-security jar"时,开发者可以配置Web服务客户端和服务器端的策略,设置签名和加密算法,指定认证方式,以及处理证书...

    我的cxf与ws-security

    【标题】"我的cxf与ws-security"涉及的是在Java Web服务开发中使用Apache CXF框架集成WS-Security(Web Service Security)的安全机制。Apache CXF是一个开源的、功能丰富的Web服务框架,它允许开发者创建和消费各种...

    CXF(WS_Security)证书加密

    3. **配置CXF**:在CXF的配置文件(如cxf.xml或Spring配置文件)中,需要设置安全策略,包括启用WS-Security,指定使用的加密算法、证书路径等。 4. **服务端配置**:在服务端,我们需要配置服务端的证书,以及如何...

    cxf-rt-ws-addr-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-ws-addr-3.0.1.jar; 赠送原API文档:cxf-rt-ws-addr-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-ws-addr-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-ws-addr-3.0.1.pom; 包含翻译后的API...

    ws-security三个jar包

    例如,使用Apache CXF或Java的JAX-WS API时,可以配置WS-Security处理器来处理这些安全特性。 总结起来,"ws-security三个jar包"是实现Web服务安全的关键组件,它们提供了WS-Security规范所定义的多种安全功能,如...

    ws-security java-mail

    尽管Xfire已被Apache CXF等更现代的框架取代,但其对`ws-security`的支持仍然展示了如何在实际项目中实现Web服务安全。这可能涉及到配置XML文件,定义安全策略,以及在服务调用中添加必要的安全头信息。 接下来,...

    Web 服务规范_第 4 部分:WS-Security源码

    在实际开发中,WS-Security的实现通常依赖于库,如Apache CXF、Axis2或Spring-WS,它们提供了API来简化WS-Security的集成。开发者可以通过这些库轻松地在SOAP消息中添加和验证安全元素。 为了实现WS-Security,...

    WS-Security构筑安全的SOAP消息调用

    为了解决这一问题,WS-Security规范应运而生。WS-Security的主要目标之一是实现端到端的安全性,确保SOAP消息即使通过不安全的中间节点也能安全可靠地从服务请求者到达服务提供者。 #### 二、WS-Security的核心功能...

    cxf-rt-rs-client-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-rs-client-3.0.1.jar; 赠送原API文档:cxf-rt-rs-client-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-rs-client-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-rs-client-3.0.1.pom; 包含...

    cxf-rt-ws-policy-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-ws-policy-3.0.1.jar; 赠送原API文档:cxf-rt-ws-policy-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-ws-policy-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-ws-policy-3.0.1.pom; 包含...

    Cxf 和wss4j实现ws-security的demo

    CXF使用WSS4J实现WS-Security规范,本例的配置是Timestamp Signature Encrypt,具体使用可以参考我的博客http://blog.csdn.net/wangchsh2008/article/details/6708270

    CXF开发所需jar包

    CXF提供了全面的WS-*(Web Services)标准支持,包括SOAP、WSDL、WS-Security等,同时也支持RESTful API的开发。在进行CXF开发时,依赖的一系列jar包是不可或缺的,它们包含了CXF运行所需的类库和组件。 1. **CXF的...

    cxfWebservice客户端全部jar包及极简调用方法.rar

    udp-3.0.11.jar,cxf-rt-wsdl-3.0.0.jar,cxf-rt-ws-security-3.0.0.jar,neethi-3.0.3.jar,slf4j-api-1.7.7.jar,stax2-api-3.1.4.jar,woodstox-core-asl-4.4.1.jar,wsdl4j-1.6.3.jar,wss4j-bindings-2.0.9.jar,xml...

    apache-cxf-3.1.1跟3.1.6所有jar包

    - **cxf-rt-ws-security.jar**:包含WS-Security相关的类和接口。 此外,还有其他如`cxf-rt-bindings-soap.jar`、`cxf-rt-databinding-jaxb.jar`、`cxf-rt-rs-extension-providers.jar`等,它们分别对应于不同的...

Global site tag (gtag.js) - Google Analytics