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}"
|
: "${KEYCLOAK_URL:?falta KEYCLOAK_URL}"
|
||||||
: "${ALVO:?falta ALVO}"
|
: "${ALVO:?falta ALVO}"
|
||||||
: "${CLIENT_SECRET:?falta CLIENT_SECRET}"
|
: "${CLIENT_SECRET:?falta CLIENT_SECRET}"
|
||||||
|
: "${ISSUER_HOST:?falta ISSUER_HOST}"
|
||||||
|
|
||||||
echo "[$(date -u +%FT%TZ)] alvo: ${ALVO}"
|
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
|
# 1. Token. O segredo vai por STDIN: em `argv` um `ps` dentro deste
|
||||||
# container o veria.
|
# 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' \
|
RESP="$(printf 'grant_type=client_credentials&client_id=operacao&client_secret=%s' \
|
||||||
"${CLIENT_SECRET}" \
|
"${CLIENT_SECRET}" \
|
||||||
| curl -sS --fail-with-body -X POST "${KEYCLOAK_URL}" \
|
| 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')"
|
TOKEN="$(printf '%s' "${RESP}" | sed -n 's/.*"access_token":"\([^"]*\)".*/\1/p')"
|
||||||
if [ -z "${TOKEN}" ]; then
|
if [ -z "${TOKEN}" ]; then
|
||||||
@@ -153,6 +165,8 @@ spec:
|
|||||||
exec /bin/sh /script/disparar.sh
|
exec /bin/sh /script/disparar.sh
|
||||||
env:
|
env:
|
||||||
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
|
- { 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
|
- name: CLIENT_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef: { name: operacao-credentials, key: client-secret }
|
secretKeyRef: { name: operacao-credentials, key: client-secret }
|
||||||
@@ -190,6 +204,8 @@ spec:
|
|||||||
command: ["/bin/sh", "/script/disparar.sh"]
|
command: ["/bin/sh", "/script/disparar.sh"]
|
||||||
env:
|
env:
|
||||||
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
|
- { 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: ALVO, value: "http://servico-financeiro/api/financeiro/notas/processar?limite=50" }
|
||||||
- name: CLIENT_SECRET
|
- name: CLIENT_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
@@ -228,6 +244,8 @@ spec:
|
|||||||
command: ["/bin/sh", "/script/disparar.sh"]
|
command: ["/bin/sh", "/script/disparar.sh"]
|
||||||
env:
|
env:
|
||||||
- { name: KEYCLOAK_URL, value: "http://keycloak:8080/realms/athleticmap/protocol/openid-connect/token" }
|
- { 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.
|
# limiteCobrancas=100: cada uma custa uma chamada ao provedor.
|
||||||
- { name: ALVO, value: "http://servico-financeiro/api/financeiro/conciliacao?limiteEventos=100&limiteCobrancas=100" }
|
- { name: ALVO, value: "http://servico-financeiro/api/financeiro/conciliacao?limiteEventos=100&limiteCobrancas=100" }
|
||||||
- name: CLIENT_SECRET
|
- name: CLIENT_SECRET
|
||||||
|
|||||||
Reference in New Issue
Block a user