Falha de Login ao consultar dataset em uma página pública

Prezados

Ao tentar carregar uma lista de filiais via getDataset em uma WIDGET de uma página públiaca ocorre o seguinte erro:

ERROR [com.totvs.technology.ecm.dataservice.ws.DatasetService] (default task-174) Falha de login. UT010031: Login failed: javax.servlet.ServletException: Falha de login. UT010031: Login failed

INFO [org.apache.cxf.phase.PhaseInterceptorChain] (default task-174) Application {http://ws.dataservice.ecm.technology.totvs.com/}ECMDatasetServiceService#{http://ws.dataservice.ecm.technology.totvs.com/}getDataset has thrown exception, unwinding now: java.lang.Exception: Falha de login. UT010031: Login failed

ERROR [org.jboss.security.auth.spi.AbstractServerLoginModule] (default task-171) The security token is expired: javax.security.auth.login.CredentialExpiredException: The security token is expired

O detalhe é que: se o usuário faz o login no fluig as consultas começa a funcionar normalmente na página pública, e continuam ocorrendo mesmo depois de ter feito logoff. Ao que me parece a WIDGET só consegue fazer as consultas após um login. O que pode estar acontecendo?

Segue abaixo o código na função init:


init: function() {

    let xml = null;

    $.ajax({
        url : 'http://188.54.61.40:8081/atendimento/resources/js/xmls/getDataset.xml',
        async : false,
        type : "get",
        datatype : "xml",
        success : function(data) {
            xml = $(data)
        }
    });
    WCMAPI.Create({
       url : "http://188.54.61.40:8081/webdesk/ECMDatasetService?wsdl",
        contentType : "text/xml",
        dataType : "xml",
        data: xml[0],
        success : function(data) {

            FLUIGC.toast({
                title: 'OK',
                message: 'Dataset Carregado',
                type: 'success' 
            });                   

            console.log(data)

        },error: function(err) {

            FLUIGC.toast({
                title: 'Não foi possível carregar a lista de filiais',
                message: err.status + ': ' + err.statusText + "\n \n" + err.responseXML.all[4].innerHTML,
                type: 'danger' 
            });                   

            console.log(xml[0])    
            console.log(err.status + ': ' + err.statusText + "\n \n" + err.responseXML.all[4].innerHTML)

        }
   })         
}

XML:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.dataservice.ecm.technology.totvs.com/">
    <soapenv:Header />
    <soapenv:Body>
        <ws:getDataset>
            <companyId>1</companyId>
            <username>client</username>
            <password>client</password>
            <name>DSCadastrodeFiliais</name>
            <fields>
                <item>filial</item>
                <item>ativo</item>
            </fields>
            <constraints>
                <item>
                    <contraintType>MUST</contraintType>
                    <fieldName>ativo</fieldName>
                    <finalValue name="finalValue">Sim</finalValue>
                    <initialValue name="initialValue">Sim</initialValue>
                    <likeSearch>false</likeSearch>
                </item>
            </constraints>
            <order></order>
        </ws:getDataset>
    </soapenv:Body>
</soapenv:Envelope>

John, talvez essa documentação ajude, porém, usuário e senha foi enviado em branco, talvez por questão de segurança.

https://tdn.totvs.com/display/public/fluig/Consumo+de+um+WS+SOAP+de+um+Widget

Certo, mas qual seria a explicação para este mesmo xml ser executado no SOAPUI e retornar os dados, e o mesmo não executar com o WCMAPI.Create ?

Simples, John, no SOAP UI você passa login e senha, não passa?

Pow, John, vi que tá usando Soap e não Rest, calma que o procedimento não é esse não!

Então, não sei se a aplicação do Soap UI já faz alguma autenticação com base nos binds criados com o login e senha passado no XML. Isso fica claro por conta da mensagem de token.

Sim, mas no corpo do XML também possui login e senha, ao meu ver seria correto reconhecer que há usuário e senha no corpo do XML. Este WCMAPI.Create suporta oAuth?

estou aplicando as alterações como exemplo deste tópico Busca de DataSet Oauth não funciona

E está correto sim, John, se você negociar a autenticação, mesmo que Oauth, te criaria uma sessão para ter permissão, porém, se tratando de SOAP, de fato não faz sentido. Aconselho enviar o xml no log para verificar se tá ok. Inclusive login e senha.

A solução para esta situação foi encontrada neste tópico:

https://forum.totvs.io/t/busca-de-dataset-oauth-nao-funciona/11147

Utilizando rest, com Oauth.