Maximo Anywhere

Expand all | Collapse all

Update to Google System WebView (123.0.6312.42) breaks SSO in Anywhere 7.6.4 iFix 4

  • 1.  Update to Google System WebView (123.0.6312.42) breaks SSO in Anywhere 7.6.4 iFix 4

    Posted Fri April 05, 2024 11:53 AM

    Hi guys,

    For your awareness...

    We recently run into a problem caused by an update of Android System WebView system app.

    Devices with old version will work fine: 122.0.6261.119

    Once upgraded (very often the update is silent) to 123.0.6312.42 the SSO will stop working. 

    Affecting all apps.

    Issue:
    Anywhere 7.6.4 iFix 4
    Android 14
    Android users suddenly started having an error during opening an app. It will show a payload of whoami request on a black screen (with a check box Pretty Print). On a clean install the app will download the update from a server, login the user using SAML (we even have a successful entry in LOGINTRACKING table and a record in MAXSESSION). But then it will show the black screen. Rebooting, resetting does not help.
    It is affecting only Android users, iOS is working fine.
    We have an open case with IBM on getting the resolution.
    Regards,
    Alexey


    ------------------------------
    Alexey Potanin
    ------------------------------


  • 2.  RE: Update to Google System WebView (123.0.6312.42) breaks SSO in Anywhere 7.6.4 iFix 4

    Posted Mon April 08, 2024 11:26 AM

    Hello, this issue also occurred last summer. I worked with IBM for quite some time to get a fix:

    in platform/handlers/ssohandler.js around line 131

    Comment out 

    var responseTag = $.parseXML(values);
    if(responseTag){
    var userInfo = JSON.parse(responseTag.getElementsByTagName("pre")[0].innerHTML);
    Then add 
    var userInfo = JSON.parse((new DOMParser().parseFromString(values, "text/html")).body.firstChild.textContent)
    like this
    if (event.url.indexOf("whoami") > -1) {
    console.log("M002 - if event url " + event.url);
    // var httpheaders = ""
    //inAppBrowserRef.executeScript({ code: scriptErrorMesssage }, executeScriptCallBack);
    inAppBrowserRef.executeScript({
    code : "document.body.innerHTML"
    }, function(values) {
    //var responseTag = $.parseXML(values);
    //if(responseTag){
    var userInfo = JSON.parse((new DOMParser().parseFromString(values, "text/html")).body.firstChild.textContent)
    //var userInfo = JSON.parse(responseTag.getElementsByTagName("pre")[0].innerHTML);
    loginUserName = userInfo.loginUserName;
    if (loginUserName==null)
    loginUserName = "ssouser";
    else
    setlocalStorage("loginUserName",loginUserName);
    console.log("M002 - loadStopCallBack - > loginUserName "+ loginUserName);
    getCookieFunc();
    //}
    inAppBrowserRef.hide();
    });
    }
    James


    ------------------------------
    James Rowley
    ------------------------------