首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CXF客户端侦听器总是先调用另一个方法吗?

CXF客户端侦听器总是先调用另一个方法吗?
EN

Stack Overflow用户
提问于 2011-03-22 07:24:03
回答 1查看 572关注 0票数 1

我正在处理一个web服务,它每次都需要调用一个“身份验证”方法,并将返回的令牌放在一个特殊的头中,以便执行下一次操作。在CXF拦截器中尝试这样做似乎是合乎逻辑的。我会认为它是这样工作的

注入业务逻辑对象的CXF客户端对象。BusinessLogic对象调用操作A。拦截器确定操作B需要首先调用,并调用操作B,然后将头部添加到原始调用A中,然后将其传出。

显然,这将是有意义的原子或潜在的递归(如果拦截器知道调用Op B传递)。我想要避免的一种丑陋的黑客方式是让拦截器对服务有一个循环依赖。我还希望避免丑陋的黑客方式,即本质上建立两个客户端对象,一个被拦截,另一个不被拦截。似乎应该有某种方法来做到这一点,事实上,我知道Service类有一个方法分派器,但我不知道如何调用将导致传出调用的操作。

EN

回答 1

Stack Overflow用户

发布于 2014-09-21 13:39:07

我意识到这是一个非常古老的问题,@jcalvert早就找到了解决方案或另一个职业。

乍一看,我质疑在拦截器链中执行I/O是否明智,在拦截器链中,在失败时传播有意义的信息可能是一个挑战,更不用说必须对每个操作重新进行身份验证的低效。

是的,可以创建一个状态完整的拦截器,它将维护一个有效的会话令牌,但客户端必须有一个“注销”操作来处理关联。

我的第一个建议是处理应用程序层的情况:更改客户端的接口,使每个操作都需要一个授权令牌。如果不存在,web服务将获取一个,并在所有操作中返回它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5384920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档