天天看点

构建基于CXF的WebService服务(3)-- 利用拦截器实现权限验证

CXF中的拦截器分为in拦截器和out拦截器,又有客户端拦截器和服务端拦截器。

拦截器使用流程:客户端(out)-> 服务端(in)->处理业务->服务端(out)->客户端(in),并不是每一步都需要拦截器。在这里我们用到的是客户端Out拦截器和服务端in拦截器。服务端in拦截器检查用户级权限,客户端out浏览器发送用户信息给服务端。

1、创建服务端验证

JaxWsServerFactoryBean或Endpoint都可以通过getInInterceptors方法,向WebService服务添加拦截器。

1.1 Endpoint方式

1.2 JaxWsServerFactoryBean方式

1.3 利用自定义拦截器实现权限控制

自定义拦截去需要实现PhaseInterceptor接口,不过一般都是继承自AbstractPhaseInterceptor<T>,下面我们来实现AuthInterceptor的权限控制功能

2、客户端发送用户信息

客户端则需要添加out拦截器,在out拦截器中加入消息头

客户端拦截器:ClienLoginInterceptor

客户端添加ClientLoginInterceptor

继续阅读