`

cxf webservice身份验证

阅读更多

 

1:spring服务端的配置

 

Java代码  收藏代码
  1.  <bean id="Customer" class="org.web.HelloServiceImpl"></bean>  
  2. <jaxws:endpoint  id="custom"  implementor="#Customer"   address="/web" >  
  3.      <jaxws:inInterceptors>    
  4.            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor" />    
  5.            <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />    
  6.            <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">    
  7.                <constructor-arg>    
  8.                    <map>    
  9.                        <entry key="action" value="UsernameToken" />    
  10.                        <entry key="passwordType"    
  11.                            value="PasswordText" />    
  12.                        <entry key="user" value="cxfServer" />    
  13.                        <entry key="passwordCallbackRef">    
  14.                            <ref bean="serverPasswordCallback" />    
  15.                        </entry>    
  16.                    </map>    
  17.                </constructor-arg>    
  18.            </bean>    
  19.        </jaxws:inInterceptors>    
  20.     
  21.  </jaxws:endpoint>  
  22. <bean id="serverPasswordCallback"  class="org.web.ServerPasswordCallback" />    

 

action:UsernameToken 是使用用户令牌

passwordType:PasswordText 是指密码加密策略.这里是直接密码文本.

user:cxfServer 是指别名

passwordCallbackRef:serverPasswordCallback 是这密码验证..类..就是下面配置的..

2: 类:serverPasswordCallback

 

 

Java代码  收藏代码
  1. import javax.security.auth.callback.Callback;  
  2. import javax.security.auth.callback.CallbackHandler;  
  3. import javax.security.auth.callback.UnsupportedCallbackException;   
  4. import org.apache.ws.security.WSPasswordCallback;  
  5.   
  6.   
  7. public class ServerPasswordCallback implements CallbackHandler {  
  8.   
  9.     public void handle(Callback[] callbacks) throws IOException,  
  10.             UnsupportedCallbackException {  
  11.         WSPasswordCallback  pc=(WSPasswordCallback) callbacks[0];  
  12.         String pw=pc.getPassword();  
  13.         String idf=pc.getIdentifier();  
  14.         System.out.println("密码是:"+pw);  
  15.         System.out.println("类型是:"+idf);  
  16.         if(pw.equals("wdwsb")&&idf.equals("admin")){  
  17.             System.out.println("成功");  
  18.         }  
  19.         else{  
  20.             throw new SecurityException("验证失败");  
  21.         }  
  22.     }  

  这个不用多说..就是密码验证..很简单!!

3:spring客户端的配置:

 

 

Java代码  收藏代码
  1. <bean id="webTest" class="org.web.HelloService" factory-bean="client" factory-method="create"/>  
  2.      <bean id="client" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean" >  
  3.             <property name="address" value="http://127.0.0.1:88/Hello/web/web"></property>  
  4.             <property name="serviceClass" value="org.web.HelloService"></property>  
  5.             <property name="outInterceptors">  
  6.                 <list>  
  7.                     <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />    
  8.                     <bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />    
  9.                     <bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">    
  10.                         <constructor-arg>    
  11.                             <map>    
  12.                                 <entry key="action" value="UsernameToken" />    
  13.                                 <entry key="passwordType"    
  14.                                     value="PasswordText" />    
  15.                                 <entry key="user" value="cxfClient" />    
  16.                                 <entry key="passwordCallbackRef">    
  17.                                     <ref bean="clientPasswordCallback" />    
  18.                                 </entry>    
  19.                             </map>    
  20.                         </constructor-arg>    
  21.                     </bean>    
  22.                 </list>  
  23.         </property>  
  24.      </bean>  
  25.      <bean id="clientPasswordCallback" class="org.web.clientPasswordCallback"></bean>  

跟server的配置差不多..没多少要讲的.呵呵...

4: 类clientPasswordCallback的配置

 

Java代码  收藏代码
  1. import javax.security.auth.callback.Callback;  
  2. import javax.security.auth.callback.CallbackHandler;  
  3. import javax.security.auth.callback.UnsupportedCallbackException;  
  4. import org.apache.ws.security.WSPasswordCallback;  
  5.   
  6. public class clientPasswordCallback implements CallbackHandler {  
  7.   
  8.     public void handle(Callback[] callbacks) throws IOException,  
  9.             UnsupportedCallbackException {  
  10.         for(int i=0;i<callbacks.length;i++){  
  11.             WSPasswordCallback ps=(WSPasswordCallback) callbacks[i];  
  12.             ps.setPassword("wdwsb");  
  13.             ps.setIdentifier("admin");  
  14.         }  
  15.     }  

   到此为止..密码认证用户令牌就完成了...

测试!

 

通过!

 

当然我前面写的一篇文章是最基本的.缺少了一些jar包.会报错的.

所以要加上以下jar包..

 

 

转自:http://blog.csdn.net/keeyce/article/details/7090753

 

分享到:
评论
1 楼 锦毛鼠 2016-09-29  
请问下您现在有没有这个demo啊?可以发我看看吗?

相关推荐

    使用cxf的webservice安全验证

    Web服务安全通常涉及身份验证、授权、加密和消息完整性。Apache CXF支持多种安全模型,包括基本认证、digest认证、WS-Security(如WS-SecurityPolicy、WS-Trust等)以及OAuth等。 标题“使用CXF的Web服务安全验证”...

    CXF 2.4 WebService 发布和调用的身份验证和获取示例代码

    1. 发布和调用WebService: 使用CXF2.4(http://cxf.apache.org)和spring 2. 调用安全性: 使用简单的USERNAME_TOKEN 3. 服务程序中取得调用者身份 ------------------------- 接口 ------------------------- intf....

    CXF WebService带有拦截器

    为了增强安全性,我们还可以考虑使用CXF的WS-Security组件,它可以支持各种安全标准,如WS-Trust、WS-SecureConversation等,提供更强的身份验证和加密机制。此外,结合Spring Security等框架,我们可以进一步实现细...

    CXF WebService实例

    例如,你可以配置CXF来实现基于证书的身份验证、消息加密和签名,以增强Web服务的安全性。对于性能,CXF允许你调整缓存策略、启用HTTP连接池等,以提高服务响应速度。 总的来说,CXF是一个强大的工具,它简化了Java...

    cxf webservice 文件分块上传

    - 安全性:确保传输过程中数据的安全,可能涉及到加密和身份验证。 总的来说,通过CXF Webservice实现文件分块上传是一个复杂但实用的系统设计,它结合了网络通信、文件操作、错误处理和安全性等多个方面的知识,...

    CXF webService所需要的jar包

    3. **wss4j-1.5.11.jar**:Web Services Security for Java(WSS4J)是Apache提供的安全框架,它为CXF提供了Web服务安全支持,如数字签名、加密、身份验证等。 4. **jetty-server-7.2.2.v20101205.jar** 和 **jetty...

    c#调用java带身份验证webservice

    本主题将深入探讨如何使用C#来调用带有身份验证的Java Web服务。Web服务作为一种基于标准的通信方式,允许不同语言和平台之间的应用程序共享数据和功能。在这个案例中,我们将重点关注C#与Java之间的交互,特别是...

    WebService开发客户端 cxf方式

    2. **安全性**:CXF提供多种安全机制,如SSL/TLS加密、WS-Security(Web Services Security)支持,可以实现身份验证、消息完整性及保密性。 3. **拦截器和插件**:CXF允许自定义拦截器和插件,扩展服务行为,如...

    WebService:Axis客户端调用需要身份验证的CXF服务

    要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...

    cxf webservice开发实例

    例如,通过添加安全配置,我们可以实现基于用户名和密码的身份验证,或者利用SSL进行加密传输。数据绑定则允许我们将XML消息自动映射到Java对象,简化数据处理。 在【prjCXFWeb】项目中,你可以找到具体的代码实现...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    HTTPS是HTTP协议的安全版本,通过SSL/TLS协议提供数据加密、服务器身份验证和消息完整性检查。在Java中,这通常涉及到生成自签名证书或使用权威CA颁发的证书,并配置在Java密钥库(keystore)中。 在服务端开发中,...

    WebService CXF --- 传输文件MTOM

    确保使用安全的HTTP传输协议(如HTTPS)以及必要的身份验证和授权机制。 5. **性能优化**:MTOM虽提高了传输效率,但也会增加服务器内存负担,因为服务端需要临时存储二进制数据。根据系统资源和需求,可能需要调整...

    CXF webService 接口

    7. **安全和事务管理**:CXF支持WS-Security(Web Services Security)和WS-Transaction等规范,可实现Web服务的身份验证、加密、消息完整性检查以及事务管理。 **CXF的使用步骤** 1. **设置环境**:添加CXF库到...

    cxf webservice

    3. **安全支持**:CXF提供了对WS-Security和其他安全标准的支持,如数字签名、加密和身份验证。 4. **传输协议和编码**:CXF支持多种传输协议(如HTTP、HTTPS、JMS)和编码方式(如SOAP、MTOM、SwA)。 5. **拦截器...

    cxf2.4.1+spring3.0+身份验证 webservice

    因为前一个资源,忘记删除个人的资料了,现在重新传一个,供大家学习使用,互相交流,资源内容 为rar格式的 项目,cxf 为服务器端,cxfTest 为客户端,里边有很多调用方式,还有身份验证,使用时,搭配好 客户端和...

    Java分页算法以及一点Apache CXF webservice 资料

    3. 支持WS-Security等安全标准:CXF提供了对各种Web服务安全标准的支持,包括数字签名、加密、身份验证等。 4. 容易集成:CXF可以轻松地与Spring框架集成,提供更灵活的配置和管理方式。 5. 自动数据绑定:CXF使用...

    基于spring+cxf实现用户文件传输的webservice

    该Webservice提供了基本的报文上传和查询功能,同时还提供了用户身份验证功能。 Spring 和 CXF 集成 Apache CXF是一个开源的服务框架,帮助开发者使用Frontend编程API构建和开发服务。CXF支持多种协议,如SOAP、...

    Java webservice cxf客户端调用demo和服务端

    2. 安全性:通过SSL/TLS加密传输,使用WS-Security等标准实现身份验证和授权。 3. 性能优化:合理设置缓存,使用连接池,避免频繁的网络交互,提高服务响应速度。 4. 日志记录:对服务调用过程进行日志记录,便于...

    webservice使用cxf的实例

    7. **安全性**:CXF支持WS-Security等安全标准,可以实现身份验证、加密和签名等功能,确保Web服务的安全通信。 8. **调试与测试**:CXF提供了强大的工具,如CXF Test Suite,用于测试和调试Web服务,包括模拟...

Global site tag (gtag.js) - Google Analytics