App Gateway
Saiba como 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 com proxy a 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 o Nome e o Sobrenome do usuário do domínio de identidades. Essa nova RFC limita os caracteres permitidos a caracteres US-ASCII imprimíveis (ou seja, 0x21 - 0x7E e os caracteres de tabulação de espaço e horizontal). 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 serviç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. Qualquer alteração no serviço IAM é periodicamente sondada 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
Mensagem Invalid_session
Quando o App Gateway não pode se comunicar corretamente com o serviço IAM, você encontra mensagens invalid_session
nos arquivos de log de erros 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 subsolicitações NGINX
para fazer solicitações ao serviço IAM e, em seguida, o App Gateway exige que o resolvedor NGINX
do Linux seja configurado de forma adequada para permitir que essas subsolicitações funcionem corretamente.
-
Verifique se a definição do resolvedor no arquivo
/usr/local/nginx/conf/nginx-cg-sub.conf
está definida com o IP correto. -
Verifique se o nome do tenant no arquivo
/usr/local/nginx/conf/cloudgate.config
está configurado corretamente.
GET 127.0.0.1:53 Erro de Comando
Os arquivos de log de erros contêm o comando GET 127.0.0.1:53, que responde ao número de erro 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 seu servidor A[[[ Gateway não puder se comunicar com o serviço IAM, siga estas etapas para usar um cliente SSH, como PuTTY
, e as credenciais a seguir para acessar o servidor App Gateway.