Logica do SistemaSecao 14
Frontend — Fluxos Criticos
Logout
LogoutServicetenta revogar token no AuthServer viaPOST /connect/revocation- BUG CONFIRMADO (FE-01): URL esta com typo
"connect/revocat"— revocacao NUNCA funciona localStorage.clear()esessionStorage.clear()executados antes do request HTTP (linhas 33-34)- Erro de revocacao e silenciosamente ignorado (
catchErrorretornaof()) - Resultado: logout e apenas visual, token permanece valido no AuthServer por ate 180 dias
Guards de Acesso
TenantGuard: verificaroles.includes('Admin Cargo Fleet')+tenantId == null(acesso host)TenantGuardHost: verificaroles.includes('admin')+tenantId == null(acesso SaaS management)- BUG CONFIRMADO (FE-02):
TenantGuardHost.canMatchnao retornafalsequando usuario nao esta logado — retornaundefinedimplicitamente - INCONSISTENCIA (FE-03): Roles diferentes entre os dois guards —
'Admin Cargo Fleet'vs'admin'
Cotacao Manual (CotarComponent)
- Dados de rota e oferta salvos em
localStoragesem criptografia (cotar.component.tslinhas 83-85) - Preco inicializado com valor 0 (sem minimo forcado no frontend)
- Campos nao-preco desabilitados no formulario
Interceptors
AcceptLanguageInterceptor: forca idiomapt-BRem todos os requests Angular
Login e Autenticacao
angular/src/app/login/login.component.ts)refresh_token(BiometricLoginService)AcceptLanguageInterceptorforca idiomapt-BRem todos os requests HTTP