Package br.com.vantroba.bi.transporte.seguranca
package br.com.vantroba.bi.transporte.seguranca
Camada de segurança específica do app (decisão 0011 / etapa 07): a policy de proteção das views e
o fluxo de login Google. O motor genérico de auth (validador Firebase RS256, sessão JWT
HS256, CSRF, Bearer estático, config
auth.*) vem da lib compartilhada
br.com.xadm.comum.seguranca (artefato br.com.xadm:xadm-seguranca); aqui fica só o
que é do app.
Conteúdo local: a ViewSecurityRule + a ViewWhitelist base (o que dispensa
sessão de view) e os handlers de rejeição que respondem em ProblemDetail (RFC 7807, API)
ou redirecionam para login (views); o controller de login em si agora vem da lib compartilhada
(br.com.xadm:xadm-seguranca), não é mais local.
As duas portas seguem: Bearer estático em /api/** para integrações, login Google nas
views (bypass em dev/test, fail-closed em prod).
-
ClassesClassDescriptionRede de segurança para
AuthExceptionque escape sem tratamento inline (oLoginControllertraduz as suas próprias no fluxo normal).Tradução das rejeições domicronaut-security(5.x lançaAuthorizationException) preservando o comportamento do antigoAuthFilter: autenticado sem permissão (AuthorizationException.isForbidden()) → 403; view anônima, browser (Accept: text/html) → 302/login?from=…; view anônima, script (JSON) → 401; view em fail-closed (prod sem envs de auth) → 503; path whitelisted (ex.:/apisem Bearer) → 401.Regra de segurança das views, replicando o tri-estado do antigoAuthFilter: enabled (envs de auth completas): path de view exigeAuthentication— autenticado →ALLOWED, anônimo →REJECTED(oViewRejectionHandlerfaz 302/401); bypass (dev/test sem envs): view liberada (ALLOWED) — views públicas; fail-closed (prod sem envs): view rejeitada (REJECTED) — o handler responde 503.Whitelist da CAMADA DE VIEWS — os paths que aViewSecurityRuledispensa de sessão.