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étodo | Açã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