Pular para o conteúdo principal

OnAllow

OnAllow é o inverso do OnBlock: você declara o que pode rodar; todo o resto é bloqueado automaticamente.

Disponível a partir de AppServer 24.3.1.1 + tlppCore 01.05.10.

Quando usar

  • Ambiente restrito — só algumas APIs públicas
  • Homologação com catálogo mínimo de rotas
  • Lista branca explícita (mais seguro que bloquear endpoint a endpoint)

Onde configurar

Só no Thread Pool — igual ao OnBlock. Nos slaves é ignorado.

[THREAD_POOL]
UserExits=TP_UEX

[TP_UEX]
;OnBlock=U_OnBlock
OnAllow=U_OnAllow

Não configure OnBlock e OnAllow juntos — OnAllow tem precedência.

Assinatura

Function U_onAllow(oList)

Mesma classe oList do OnBlock, com métodos diferentes:

MétodoAção
oList:allow(endpoint, metodo)Libera endpoint + verbo
oList:hide(endpoint, metodo)Oculta da listagem
oList:getApiList()APIs disponíveis na subida
oList:getServiceName()Nome do serviço HTTP
oList:getThreadPoolName()Nome do thread pool
oList:getServicePort()Porta do serviço
oList:getUserData()JSON de UserData

Retorno ignorado — devolva Nil.

Endpoints não passados em allow() ficam bloqueados.

Exemplo

Function U_onAllow(oList)
Local cEndpoint := ''
Local cServiceName := oList:getServiceName()
Local nServicePort := oList:getServicePort()
Local cThreadPoolName := oList:getThreadPoolName()
Local cUserData := oList:getUserData()
Local jApis := oList:getApiList()

cEndpoint := '/exemplo1/urn'
oList:allow(cEndpoint, 'get')
oList:allow(cEndpoint, 'post')
oList:hide(cEndpoint, 'put')

cEndpoint := '/exemplo2/urn'
oList:allow(cEndpoint, 'get')

Return Nil

Modo Soft

Se a função lançar exceção na subida, o servidor não sobe por padrão (evita expor APIs por engano). Para subir mesmo com falha na lista:

[THREAD_POOL]
TlppData={"OnAllowSoft":true}

Próximo passo: OnSelect