`
498320858
  • 浏览: 386627 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CXF下的保护暴露在外的web service的方法及注意事项

阅读更多
最近这几天都在使用CXF作为webservice的组件,试图将公开的webservice加入到保护的范围内。

添加到保护的方法有三种:

(1)指定地址访问,即指定一些IP地址,只有这些地址的请求我们的接口才处理。

这种方法我在开发中有使用到,可以通过WEB容器中的Filter类来实现,

只需要检查请求的地址是否在我们指定的地址列表中就可以了。

优点:处于请求响应链的前端,响应非常迅速,所以消耗的资源很少。

缺端:使用这种方法只能检查指定地址的请求,通常只能应用的小范围内,如局域网。

另外使用这种验证方法,无法进行权限的检查,一旦通过验证将可以执行所有公开的接口。

(2)用户名/密码对验证,使用指定的用户名密码进行验证

这种方法适合于具体用户的检查,进而可以检查其是否有权限执行其请求的操作.

优点:可以只准确地检查用户,甚至验证权限。

缺点:这种方式不能和WEB应用的登录一样,只需要验证一次就可以了;必须

每个请求都检查,如果需要使用这种方法去做,还需要处理好类似登录/退出机制。

(3)使用HTTPS进行验证,这种方法应该也可以具体的验证证书来自哪个用户,进而检查其权限。

优点:安全更有保证

缺点:配置复杂,对客户端程序员要求很比较高。



注意事项:

使用CXF进行WEBService交互时,特别是进行客户端工作时,最好将服务端和客户端的环境剥离开来。

这几天的工作教会了我这个事情(今天上午在测试客户端代码时出现莫名其妙的错,最后发现是JAR包冲突,

在服务器的环境中运行客户端程序时,程序加载了过时的JAR)。
分享到:
评论
2 楼 498320858 2011-11-14  
Jolence 写道
请问第一种方式是怎么配置的,我想让只有指定的域名或者地址才能访问wsdl

在filter或者表现层(servlet或者action拦截器)获取url,然后与数据库(或文件)中存储的url进行匹配,有则放行,无则返回错误页面;
1 楼 Jolence 2011-10-27  
请问第一种方式是怎么配置的,我想让只有指定的域名或者地址才能访问wsdl

相关推荐

Global site tag (gtag.js) - Google Analytics