fix(plataforma): token do CronJob com o emissor publico (cabecalhos de proxy)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user