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)。不确定它是在这里还是在您的真实代码中...... handleChallangehandleChallenge 相同) 帖子打错字了,明显是ChallengeHandler。 【参考方案1】:

到目前为止还很模糊,但我会写一些我想到的可能性。如果有任何帮助,请告诉我,我会更新我的答案。

1) 你上面的代码说你使用类ChallangeHandler。我不确定错字是否仅在 *** 或您的真实代码中,但该类是 ChallengeHandler,带有 e

handleChallangehandleChallenge 相同。

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

IBM Worklight - 如何从 Mac OS 的 6.2 切换回 6.1 版? [关闭]

IBM Worklight 6.2 WAS ND 8.5.5 中没有运行时控制台