App Gateway
Saiba como diagnosticar e solucionar problemas comuns do App Gateway.
Minha Mensagem de Erro de Resposta Contém: 400 Solicitação Inválida: valor de cabeçalho inválido
Saiba a causa comum quando uma mensagem de erro de resposta contém: 400 Bad Request: invalid header value.
O App Gateway adiciona cabeçalhos às solicitações que têm proxy para um Servidor de Aplicativos upstream. Um desses cabeçalhos, idcs_user_display_name, pode ter caracteres inválidos conforme definido pela RFC mais recente - dependendo dos valores definidos para Nome e Sobrenome do usuário do domínio de identidades. Esta nova RFC limita os caracteres permitidos a caracteres US-ASCII imprimíveis (ou seja, 0x21 - 0x7E e os caracteres de tabulação horizontal e de espaço). Consulte Sintaxe e Roteamento de Mensagem RFC 7230 HTTP/1.1.
Os Servidores de Aplicativos que impõem a RFC mais recente rejeitarão a solicitação com a resposta: 400 Solicitação Inválida: valor de cabeçalho inválido. Observação: A resposta exata depende do servidor de aplicativos que está sendo usado.
O Servidor do App Gateway Não Reflete Alterações
Quando você não puder ver as alterações feitas no serviço IAM no servidor do App Gateway, tente o seguinte.
As alterações feitas nos aplicativos empresariais e nas definições do App Gateway em Domínios de Identidade talvez não sejam refletidas imediatamente no App Gateway porque ele armazena no cache as informações dos Domínios de Identidade, como recursos, políticas de autenticação e valores de cabeçalho de aplicativos empresariais.
O App Gateway entra em contato com o IAM usando agentes para coletar informações de host e porta. Quando você inicia o App Gateway, o servidor NGINX é configurado automaticamente com essas informações. Quaisquer alterações no IAM são periodicamente entrevistadas pelos agentes.
/usr/local/nginx/conf/cloudgate.config. Altere o valor ttl para policy e headers na seção caching de acordo com o exemplo a seguir e reinicie o servidor e o agente do App Gateway."caching" : {
"minimumTtl" : 300,
"headers" : { "ttl": 3600 },
"discovery" : { "ttl": 3600 },
"policy" : { "ttl": 3600},
"tenantKeys" : { "ttl": 86400 }
}
/usr/local/nginx/conf/cloudgate.config, altere o valor pollIntervalSecs na seção agentConfig, como no exemplo:"agentConfig": {
"pollIntervalSecs" : 60,
"daemon" : true,
"logLevel" : "warn",
"logFolder" : ""
}
/scratch/oracle/cloudgate/home/bin/cg-stop
/scratch/oracle/cloudgate/home/bin/cg-start
/scratch/oracle/cloudgate/home/bin/agent-stop
/scratch/oracle/cloudgate/home/bin/agent-start
Invalid_session Mensagem
Quando não é possível se comunicar corretamente com o IAM, você encontra mensagens invalid_session nos arquivos do log do erro do App Gateway.
Veja a seguir um exemplo de mensagem invalid_session no arquivo error.log:
www-authenticate: Bearer error="invalid_session", error_description="Authentication Failure
Isso pode ser por causa da maneira como o App Gateway processa uma solicitação do cliente para um recurso protegido. O App Gateway usa as sub-solicitações NGINX para fazer solicitações ao IAM e, em seguida, o App Gateway exige que o resolvedor NGINX do Linux seja configurado adequadamente para permitir que essas sub-solicitações funcionem corretamente.
-
Verifique se a definição do resolvedor no arquivo
/usr/local/nginx/conf/nginx-cg-sub.confestá definida com o IP correto. -
Verifique se o nome do tenant no arquivo
/usr/local/nginx/conf/cloudgate.configestá configurado corretamente.
Erro de Comando GET 127.0.0.1:53
Os arquivos de log de erros contêm o comando GET 127.0.0.1:53, respondendo ao erro número 500.
Como o App Gateway faz subsolicitações a um servlet interno, ele exige que a máquina virtual atenda na porta 53.
O servidor do App Gateway deve se comunicar com ele mesmo por meio do endereço IP 127.0.0.1 e da porta 53.
Se você estiver executando o App Gateway em um software de máquina virtual, configure o encaminhamento dessa porta do host para o convidado. Consulte Configurando Regras de Encaminhamento de Porta.
O Servidor do App Gateway Não Pode se Comunicar com o IAM
Quando o servidor A[[ Gateway não puder se comunicar com o IAM, siga estas etapas para usar um cliente SSH como PuTTY e as seguintes credenciais para acessar o servidor do Gateway de Aplicativo.