Acessar DataSource privado em página publica

Criei uma página publica no FLUIG que mostra os feriados cadastrados em uma grid. Esses feriados vem do Data source globalCalendar. Porém ao tentar buscar o DataSource ele nega o acesso pois o usuário não está logado.


DatasetFactory.getDataset("globalCalendar", null, null, null);
wcm_global_en_US.js?v=f1.6.0-EP3:3 POST FLUIG/api/public/ecm/dataset/datasets/ 401 (Unauthorized)

Como eu faço para habilitar o acesso aos DataSets em páginas públicas?

@Guilherme, boa tarde!!

Para acessar qualquer dataset do fluig é necessário estar logado!! Para utilização em páginas públicas é recomendado realizar autenticação via OAuth para o recurso desejado!

Infelizmente não tenho nenhum exemplo, mas pode começar verificando a documentação do fluig, lá é detalhado qual protocolo do OAuth é utilizado, como criar um OAuth Provider, OAuth App e usuário aplicativo, que será necessário para utilização do protocolo.

http://tdn.totvs.com/display/public/fluig/Fluig+API

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Eu tenho um exemplo, me mande um email, igor.rodrigues@totvs.com.br

tentei seguir os passos do link mas não está muito claro, teria outro material para me auxiliar?

@Guilherme, adicionei um exemplo simples de uma widget consumindo um dataset com OAuth no anexo da minha resposta anterior!

Cara só não entendi como funciona o Oauth App, da onde vem os campos Consumer Key e Consumer Secret? Posso colocar qualquer coisa nesses campos?

É aberto os campos, você que gera, já os tokens o fluig que gera! Eu normalmente crio uns hash e coloco nesses campos!

sobre o exemplo que você mandou, eu tive esse erro Uncaught ReferenceError: CryptoJS is not defined, ele está importando primeiro o enc-base64-min e depois o hmac-sha1, como mudo a ordem de importação?

Eu deixei na ordem já no application.info, nao tive esse problema aqui! Qualquer coisa, coloca o js da widget por ultimo no application!

Deu certo nas páginas logadas, nas publicas continua dando error, porém agora é erro no servidor, ele não fala o que está errado.

Estranho hein!! Aqui o link de uma base minha rodando: http://fluigdemo.totvsop.com.br:8082/portal/1/pageUnAuthentication

Descobri o que era, coloquei o mesmo valor para o customer e para o tokem, troquei os valores e funcionou, vlw :smiley:

Mais uma coisa, como eu faço constraints nos DataSets dessa maneira?

Adiciona o atributo, filterFields, no atributo data do objeto request_data. Sempre adicionando desta forma: filterFields: “campo1,valor1,campo2,valor2”. Se habilitar a busca no datatable, o mesmo ja fará a busca sozinho acrescentando um atributo na query, searchValue, que foi configurado nos settings do datatable.

Olá Guilherme, estive com o mesmo problema de acessar qualquer dataset em página pública. Você pode fazer o que o Rodolfo comentou, de usar o OAuth, criar o OAuth, etc. Portanto, seguem alguns passos para que isso seja possível:

  1. Se baseie neste repositório FLUIG: https://git.fluig.com/projects/SAMPLES/repos/rest-oauth-sample/browse/src/main/java/com/fluig/oauth/ConnectRest.java
    1. Uma vez logado pelo OAuth, faça uma requisição POST nesta URL "/api/public/ecm/dataset/datasets" do FLUIG passando como parâmetro um JSON;
    2. JSON que vai passar por parâmetro é este abaixo:

{
        //name do dataset
        "name" : "colleague", 

        //campos de retorno
        "fields" : ["login"], 

        //contraints...
        "constraints" : [
            { 
                //campo para fazer filtro
                "_field" : "login", 

                //valor inicial
                "_initialValue": "Bruno", 

                //valor final
                "_finalValue" : "Bruno",

                //tipo de pesquisa (1- MUST, 2 - SHOULD, 3 - MUST_NOT )
                "_type": 1, 

                //search tipo LIKE
                "_likeSearch": false
            }
        ], 
        //ordenar por campos...
        "order":["login"]
    }

Espero que consiga, qualquer coisa manda uma mensagem aí.

Abraços.

eu apenas queria esse arquivo (dataset_public.zip) mas esta corrompido :confused: