CXF下的保护暴露在外的web service的方法及注意事项
最近这几天都在使用CXF作为webservice的组件,试图将公开的webservice加入到保护的范围内。
添加到保护的方法有三种:
(1)指定地址访问,即指定一些IP地址,只有这些地址的请求我们的接口才处理。
这种方法我在开发中有使用到,可以通过WEB容器中的Filter类来实现,
只需要检查请求的地址是否在我们指定的地址列表中就可以了。
优点:处于请求响应链的前端,响应非常迅速,所以消耗的资源很少。
缺端:使用这种方法只能检查指定地址的请求,通常只能应用的小范围内,如局域网。
另外使用这种验证方法,无法进行权限的检查,一旦通过验证将可以执行所有公开的接口。
(2)用户名/密码对验证,使用指定的用户名密码进行验证
这种方法适合于具体用户的检查,进而可以检查其是否有权限执行其请求的操作.
优点:可以只准确地检查用户,甚至验证权限。
缺点:这种方式不能和WEB应用的登录一样,只需要验证一次就可以了;必须
每个请求都检查,如果需要使用这种方法去做,还需要处理好类似登录/退出机制。
(3)使用HTTPS进行验证,这种方法应该也可以具体的验证证书来自哪个用户,进而检查其权限。
优点:安全更有保证
缺点:配置复杂,对客户端程序员要求很比较高。
注意事项:
使用CXF进行WEBService交互时,特别是进行客户端工作时,最好将服务端和客户端的环境剥离开来。
这几天的工作教会了我这个事情(今天上午在测试客户端代码时出现莫名其妙的错,最后发现是JAR包冲突,
在服务器的环境中运行客户端程序时,程序加载了过时的JAR)。
Let life be beautiful like summer flowers and death like autumn leaves.