我正在尝试使用不同的凭据更改用户身份。它可以通过领域成功登录,但新的Userid没有在Mobilefirst控制台中更新。控制台仍显示旧的用户ID。
我正在使用以下代码。
function submitAuthentication(username, password){
userIdentity = {
userId: username,
displayName: "sample",
attributes: {
foo: "bar"
}
};
WL.Server.setActiveUser("AuthRealm", null);
WL.Server.setActiveUser("AuthRealm", userIdentity);
return {
authStatus: "complete" ,
result: "Success"
};
// }
}
我刚看到android客户端下面的错误,challengehandler类/ handleChallenge方法
07-12 07:14:34.265 13001-13078/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.worklight.wlclient.WLRequest.shouldFailOnChallengeCancel()' on a null object reference
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at com.worklight.wlclient.api.WLClient$InvokeProcedureRequestListener.onFailure(WLClient.java:1376)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at com.worklight.wlclient.WLRequest.triggerUnexpectedOnFailure(WLRequest.java:337)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at com.worklight.wlclient.WLRequest.requestFinished(WLRequest.java:295)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at com.worklight.wlclient.WLRequestSender.run(WLRequestSender.java:52)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
07-12 07:14:34.266 13001-13078/com.mfp W/System.err: at java.lang.Thread.run(Thread.java:818)
07-12 07:14:34.333 13001-13007/com.mfp W/art: Suspending all threads took: 66.075ms
以下是问题
调用submitSuccess()时,BaseChallengeHandler中的activeRequest(WLRequest对象)为null;在ChallengeHandler中 这就是我遇到错误的原因。我无法解决主要问题,但我能够解决上述错误。
以下地点是activeRequest未获得正确价值的地方。 由于request.getOptions()。isFromChallenge()始终为true,因此activeRequest的值未设置为正确的值。此后为null。
所以我将挑战视为虚假。
public void startHandleChallenge(WLRequest request, T challenge) {
synchronized(this) {
if(!request.getOptions().isFromChallenge()) {
if(this.activeRequest != null) {
this.requestWaitingList.add(request);
return;
}
this.activeRequest = request;
}
}
this.handleChallenge(challenge);
}