IBM Worklight 6.2 ChallengeHandler submitFailure:未按预期运行
Posted
技术标签:
【中文标题】IBM Worklight 6.2 ChallengeHandler submitFailure:未按预期运行【英文标题】:IBM Worklight 6.2 ChallengeHandler submitFailure: doesn't behave as expected 【发布时间】:2014-11-04 13:44:20 【问题描述】:我正在使用 Worklight 6.2 ios 本机框架。我已经实现了一个自定义MyChallengeHandler
子类ChallengeHandler
,并登录:
[[WLClient sharedInstance] login:@"SomeRealm" withDelegate:LoginListener];
在ChallengeHandler
中我可以提交成功,它在LoginListener
中调用onSuccess:
:
[self submitSuccess:response];
但是,我无法提交失败,我希望在 LoginListener
中调用 onFailure:
。实际上,调用submitFailure:
和onFailure:
在LoginListener
中从未被调用时看起来没有任何效果。
另外,我在 WL ChallengeHandler
标头中没有看到 submitFailure:
的声明,它仅在 BaseChallengeHandler
中可用。
我的主要观点是,目前看起来LoginListener
onFailure:
方法从未被调用,但在某些情况下handleChallenge:
应该失败。并且 LoginListener 应该被释放。
这是 Worklight 中的一个已知问题,是否有任何解决方法?
更新 1:
刚发现JS客户端API有类似问题,对native没用: Adapter procedure call, reporting an authentication failure
更新 2:
这可能很重要。我正在使用适配器身份验证,但在 IBM 示例中有 submitLoginForm:
,也许我的问题仅针对适配器身份验证。
[self submitAdapterAuthentication:invocationData options:nil]
【问题讨论】:
我注意到的第一件事,你写的是ChallangeHandler
而不是ChallengeHandler
(e不是a)。不确定它是在这里还是在您的真实代码中......
(handleChallange
与 handleChallenge
相同)
帖子打错字了,明显是ChallengeHandler。
【参考方案1】:
到目前为止还很模糊,但我会写一些我想到的可能性。如果有任何帮助,请告诉我,我会更新我的答案。
1) 你上面的代码说你使用类ChallangeHandler
。我不确定错字是否仅在 *** 或您的真实代码中,但该类是 ChallengeHandler
,带有 e
。
handleChallange
与 handleChallenge
相同。
2) 您是否在某处注册了您的挑战处理程序?
[[WLClient sharedInstance] registerChallengeHandler:[[MyChallengeHandler alloc] initWithViewController:self] ];
3) 你的 LoginListener 是否成功过?你的挑战处理程序呢?
您是正确的,文档没有提到 submitFailure - 我会调查的。
但是在我编写的代码中,我可以毫无问题地使用它。
@implementation MyChallengeHandler
//...
-(void) onSuccess:(WLResponse *)response
NSLog(@"inside challenge success");
[self.vc.navigationController popViewControllerAnimated:YES];
[self submitSuccess:response];
-(void) onFailure:(WLFailResponse *)response
NSLog(@"inside challenge failure");
[self submitFailure:response];
【讨论】:
1) 帖子中的错字 2) 是的,我已经注册了 ChallengeHandler。 3)是的,onSuccess:工作正常。我可以 submitSuccess: 在 handleChallenge: 中没有任何问题。问题只针对 submitFailure:,如果我想放弃 handleChallenge: 出于某种原因。以上是关于IBM Worklight 6.2 ChallengeHandler submitFailure:未按预期运行的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.2 Development Server 自动停止
IBM Worklight 6.2 无法设置状态。响应已提交
IBM Worklight 6.2:JMX 配置错误。无法获取 MBean
IBM Worklight 6.2 SRVE0777E:应用程序类“com.worklight.core.auth.impl.AuthenticationFilter.verifyServletIni