fix(plataforma): token do CronJob com o emissor publico (cabecalhos de proxy)

This commit is contained in:
deploy
2026-09-21 11:55:07 +00:00
parent 0e9a516495
commit e2760f4e7a
+19 -1
View File
@@ -67,6 +67,7 @@ data:
: "${KEYCLOAK_URL:?falta KEYCLOAK_URL}"
: "${ALVO:?falta ALVO}"
: "${CLIENT_SECRET:?falta CLIENT_SECRET}"
: "${ISSUER_HOST:?falta ISSUER_HOST}"
echo "[$(date -u +%FT%TZ)] alvo: ${ALVO}"
@@ -96,10 +97,21 @@ data:
# 1. Token. O segredo vai por STDIN: em `argv` um `ps` dentro deste
# container o veria.
# Os tres cabecalhos de proxy NAO sao enfeite: sem eles o Keycloak monta o
# `iss` com o endereco da REQUISICAO — `http://auth-plataforma...:8080` —, e
# o servico recusa o token com 401, porque espera
# `https://auth-plataforma.../realms/athleticmap`. Descoberto em 2026-09-21,
# e e a mesma fronteira de P2.7: o `iss` e o que separa um tenant do outro.
#
# Pedir o token pelo endereco PUBLICO resolveria tambem, mas de dentro do
# cluster esse endereco nao responde (o retorno pelo IP do no nao fecha).
RESP="$(printf 'grant_type=client_credentials&client_id=operacao&client_secret=%s' \
"${CLIENT_SECRET}" \
| curl -sS --fail-with-body -X POST "${KEYCLOAK_URL}" \
-H 'Content-Type: application/x-www-form-urlencoded' -d @-)"
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'X-Forwarded-Proto: https' \
-H 'X-Forwarded-Port: 443' \
-H "X-Forwarded-Host: ${ISSUER_HOST}" -d @-)"
TOKEN="$(printf '%s' "${RESP}" | sed -n 's/.*"access_token":"\([^"]*\)".*/\1/p')"
if [ -z "${TOKEN}" ]; then
@@ -153,6 +165,8 @@ spec:
exec /bin/sh /script/disparar.sh
env:
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
# O host publico do realm: vira `iss` do token (ver disparar.sh).
- { name: ISSUER_HOST, value: "auth-plataforma.athleticmap.influxdigital.com.br" }
- name: CLIENT_SECRET
valueFrom:
secretKeyRef: { name: operacao-credentials, key: client-secret }
@@ -190,6 +204,8 @@ spec:
command: ["/bin/sh", "/script/disparar.sh"]
env:
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
# O host publico do realm: vira `iss` do token (ver disparar.sh).
- { name: ISSUER_HOST, value: "auth-plataforma.athleticmap.influxdigital.com.br" }
- { name: ALVO, value: "http://servico-financeiro/api/financeiro/notas/processar?limite=50" }
- name: CLIENT_SECRET
valueFrom:
@@ -228,6 +244,8 @@ spec:
command: ["/bin/sh", "/script/disparar.sh"]
env:
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
# O host publico do realm: vira `iss` do token (ver disparar.sh).
- { name: ISSUER_HOST, value: "auth-plataforma.athleticmap.influxdigital.com.br" }
# limiteCobrancas=100: cada uma custa uma chamada ao provedor.
- { name: ALVO, value: "http://servico-financeiro/api/financeiro/conciliacao?limiteEventos=100&limiteCobrancas=100" }
- name: CLIENT_SECRET