1:spring服务端的配置
- <bean id="Customer" class="org.web.HelloServiceImpl"></bean>
- <jaxws:endpoint id="custom" implementor="#Customer" address="/web" >
- <jaxws:inInterceptors>
- <bean class="org.apache.cxf.interceptor.LoggingInInterceptor" />
- <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="user" value="cxfServer" />
- <entry key="passwordCallbackRef">
- <ref bean="serverPasswordCallback" />
- </entry>
- </map>
- </constructor-arg>
- </bean>
- </jaxws:inInterceptors>
-
- </jaxws:endpoint>
- <bean id="serverPasswordCallback" class="org.web.ServerPasswordCallback" />
action:UsernameToken
是使用用户令牌
passwordType:PasswordText
是指密码加密策略.这里是直接密码文本.
user:cxfServer
是指别名
passwordCallbackRef:serverPasswordCallback
是这密码验证..类..就是下面配置的..
2: 类:serverPasswordCallback
- import javax.security.auth.callback.Callback;
- import javax.security.auth.callback.CallbackHandler;
- import javax.security.auth.callback.UnsupportedCallbackException;
- import org.apache.ws.security.WSPasswordCallback;
-
-
- public class ServerPasswordCallback implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- WSPasswordCallback pc=(WSPasswordCallback) callbacks[0];
- String pw=pc.getPassword();
- String idf=pc.getIdentifier();
- System.out.println("密码是:"+pw);
- System.out.println("类型是:"+idf);
- if(pw.equals("wdwsb")&&idf.equals("admin")){
- System.out.println("成功");
- }
- else{
- throw new SecurityException("验证失败");
- }
- }
这个不用多说..就是密码验证..很简单!!
3:spring客户端的配置:
- <bean id="webTest" class="org.web.HelloService" factory-bean="client" factory-method="create"/>
- <bean id="client" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean" >
- <property name="address" value="http://127.0.0.1:88/Hello/web/web"></property>
- <property name="serviceClass" value="org.web.HelloService"></property>
- <property name="outInterceptors">
- <list>
- <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
- <bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
- <bean 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="cxfClient" />
- <entry key="passwordCallbackRef">
- <ref bean="clientPasswordCallback" />
- </entry>
- </map>
- </constructor-arg>
- </bean>
- </list>
- </property>
- </bean>
- <bean id="clientPasswordCallback" class="org.web.clientPasswordCallback"></bean>
跟server的配置差不多..没多少要讲的.呵呵...
4: 类clientPasswordCallback的配置
- import javax.security.auth.callback.Callback;
- import javax.security.auth.callback.CallbackHandler;
- import javax.security.auth.callback.UnsupportedCallbackException;
- import org.apache.ws.security.WSPasswordCallback;
-
- public class clientPasswordCallback implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for(int i=0;i<callbacks.length;i++){
- WSPasswordCallback ps=(WSPasswordCallback) callbacks[i];
- ps.setPassword("wdwsb");
- ps.setIdentifier("admin");
- }
- }
到此为止..密码认证用户令牌就完成了...
测试!
通过!
当然我前面写的一篇文章是最基本的.缺少了一些jar包.会报错的.
所以要加上以下jar包..
转自:http://blog.csdn.net/keeyce/article/details/7090753
分享到:
相关推荐
Web服务安全通常涉及身份验证、授权、加密和消息完整性。Apache CXF支持多种安全模型,包括基本认证、digest认证、WS-Security(如WS-SecurityPolicy、WS-Trust等)以及OAuth等。 标题“使用CXF的Web服务安全验证”...
1. 发布和调用WebService: 使用CXF2.4(http://cxf.apache.org)和spring 2. 调用安全性: 使用简单的USERNAME_TOKEN 3. 服务程序中取得调用者身份 ------------------------- 接口 ------------------------- intf....
为了增强安全性,我们还可以考虑使用CXF的WS-Security组件,它可以支持各种安全标准,如WS-Trust、WS-SecureConversation等,提供更强的身份验证和加密机制。此外,结合Spring Security等框架,我们可以进一步实现细...
例如,你可以配置CXF来实现基于证书的身份验证、消息加密和签名,以增强Web服务的安全性。对于性能,CXF允许你调整缓存策略、启用HTTP连接池等,以提高服务响应速度。 总的来说,CXF是一个强大的工具,它简化了Java...
- 安全性:确保传输过程中数据的安全,可能涉及到加密和身份验证。 总的来说,通过CXF Webservice实现文件分块上传是一个复杂但实用的系统设计,它结合了网络通信、文件操作、错误处理和安全性等多个方面的知识,...
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 Web服务。Web服务作为一种基于标准的通信方式,允许不同语言和平台之间的应用程序共享数据和功能。在这个案例中,我们将重点关注C#与Java之间的交互,特别是...
2. **安全性**:CXF提供多种安全机制,如SSL/TLS加密、WS-Security(Web Services Security)支持,可以实现身份验证、消息完整性及保密性。 3. **拦截器和插件**:CXF允许自定义拦截器和插件,扩展服务行为,如...
要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...
例如,通过添加安全配置,我们可以实现基于用户名和密码的身份验证,或者利用SSL进行加密传输。数据绑定则允许我们将XML消息自动映射到Java对象,简化数据处理。 在【prjCXFWeb】项目中,你可以找到具体的代码实现...
HTTPS是HTTP协议的安全版本,通过SSL/TLS协议提供数据加密、服务器身份验证和消息完整性检查。在Java中,这通常涉及到生成自签名证书或使用权威CA颁发的证书,并配置在Java密钥库(keystore)中。 在服务端开发中,...
确保使用安全的HTTP传输协议(如HTTPS)以及必要的身份验证和授权机制。 5. **性能优化**:MTOM虽提高了传输效率,但也会增加服务器内存负担,因为服务端需要临时存储二进制数据。根据系统资源和需求,可能需要调整...
7. **安全和事务管理**:CXF支持WS-Security(Web Services Security)和WS-Transaction等规范,可实现Web服务的身份验证、加密、消息完整性检查以及事务管理。 **CXF的使用步骤** 1. **设置环境**:添加CXF库到...
3. **安全支持**:CXF提供了对WS-Security和其他安全标准的支持,如数字签名、加密和身份验证。 4. **传输协议和编码**:CXF支持多种传输协议(如HTTP、HTTPS、JMS)和编码方式(如SOAP、MTOM、SwA)。 5. **拦截器...
因为前一个资源,忘记删除个人的资料了,现在重新传一个,供大家学习使用,互相交流,资源内容 为rar格式的 项目,cxf 为服务器端,cxfTest 为客户端,里边有很多调用方式,还有身份验证,使用时,搭配好 客户端和...
3. 支持WS-Security等安全标准:CXF提供了对各种Web服务安全标准的支持,包括数字签名、加密、身份验证等。 4. 容易集成:CXF可以轻松地与Spring框架集成,提供更灵活的配置和管理方式。 5. 自动数据绑定:CXF使用...
该Webservice提供了基本的报文上传和查询功能,同时还提供了用户身份验证功能。 Spring 和 CXF 集成 Apache CXF是一个开源的服务框架,帮助开发者使用Frontend编程API构建和开发服务。CXF支持多种协议,如SOAP、...
2. 安全性:通过SSL/TLS加密传输,使用WS-Security等标准实现身份验证和授权。 3. 性能优化:合理设置缓存,使用连接池,避免频繁的网络交互,提高服务响应速度。 4. 日志记录:对服务调用过程进行日志记录,便于...
7. **安全性**:CXF支持WS-Security等安全标准,可以实现身份验证、加密和签名等功能,确保Web服务的安全通信。 8. **调试与测试**:CXF提供了强大的工具,如CXF Test Suite,用于测试和调试Web服务,包括模拟...