Class AuthSettings

java.lang.Object
br.com.xadm.comum.seguranca.AuthSettings

@ConfigurationProperties("auth") public class AuthSettings extends Object
Configurações de autenticação mapeadas do bloco auth: em application.yml.

"Auth configurado" ≡ firebaseProjectId, firebaseApiKey, firebaseAuthDomain, firebaseAppId e sessionSecret todos preenchidos. Com qualquer um vazio, o AuthFilter entra em bypass (dev/test) ou fail-closed (produção).

Envs mapeadas:

  • AUTH_FIREBASE_PROJECT_ID — ex.: xadm-6ab81
  • AUTH_FIREBASE_API_KEY — Web API key (público; vai no HTML)
  • AUTH_FIREBASE_AUTH_DOMAIN — ex.: xadm-6ab81.firebaseapp.com
  • AUTH_FIREBASE_APP_ID — Web app ID (público)
  • AUTH_SESSION_SECRET — segredo HS256 da sessão (mín. 32 chars)
  • AUTH_SESSION_TTL_SECONDS — TTL do cookie de sessão (default 28800 = 8h)
  • AUTH_COOKIE_SECURE — flag Secure do cookie (default true)
  • AUTH_XADM_EMAIL_DOMAIN — domínio aceito (default xadm.com.br)
  • Field Details

  • Constructor Details

    • AuthSettings

      public AuthSettings()
  • Method Details

    • getFirebaseProjectId

      public String getFirebaseProjectId()
      Returns o firebase-project-id configurado, ou string vazia se ausente.
      Returns:
      o firebase-project-id configurado, ou string vazia se ausente
    • setFirebaseProjectId

      public void setFirebaseProjectId(String v)
      Define o firebase-project-id. @param v valor configurado.
    • getFirebaseApiKey

      public String getFirebaseApiKey()
      Returns a Web API key do Firebase (público; vai no HTML).
      Returns:
      a Web API key do Firebase (público; vai no HTML)
    • setFirebaseApiKey

      public void setFirebaseApiKey(String v)
      Define a Web API key do Firebase. @param v valor configurado.
    • getFirebaseAuthDomain

      public String getFirebaseAuthDomain()
      Returns o auth-domain do Firebase.
      Returns:
      o auth-domain do Firebase
    • setFirebaseAuthDomain

      public void setFirebaseAuthDomain(String v)
      Define o auth-domain do Firebase. @param v valor configurado.
    • getFirebaseAppId

      public String getFirebaseAppId()
      Returns o Web app ID do Firebase (público).
      Returns:
      o Web app ID do Firebase (público)
    • setFirebaseAppId

      public void setFirebaseAppId(String v)
      Define o Web app ID do Firebase. @param v valor configurado.
    • getSessionSecret

      public String getSessionSecret()
      Returns o segredo HS256 da sessão (mínimo 32 chars).
      Returns:
      o segredo HS256 da sessão (mínimo 32 chars)
    • setSessionSecret

      public void setSessionSecret(String v)
      Define o segredo HS256 da sessão. @param v valor configurado.
    • getSessionTtlSeconds

      public int getSessionTtlSeconds()
      Returns o TTL do cookie de sessão em segundos (default 28800 = 8h).
      Returns:
      o TTL do cookie de sessão em segundos (default 28800 = 8h)
    • setSessionTtlSeconds

      public void setSessionTtlSeconds(int v)
      Define o TTL do cookie de sessão em segundos. @param v valor configurado.
    • isCookieSecure

      public boolean isCookieSecure()
      Returns se o cookie deve ter a flag Secure (default true).
      Returns:
      se o cookie deve ter a flag Secure (default true)
    • setCookieSecure

      public void setCookieSecure(boolean v)
      Define a flag Secure do cookie. @param v valor configurado.
    • getXadmEmailDomain

      public String getXadmEmailDomain()
      Returns o domínio de email aceito no login (default xadm.com.br).
      Returns:
      o domínio de email aceito no login (default xadm.com.br)
    • setXadmEmailDomain

      public void setXadmEmailDomain(String v)
      Define o domínio de email aceito. @param v valor configurado.
    • getIssuer

      public String getIssuer()
      Returns o issuer (iss) do JWT de sessão.. Env AUTH_ISSUER. Identifica o app emissor — config por-app (a lib não fixa o tenant); antes hardcoded por cópia (ex.: bi-comercial-xls). Consumido pelo SessionTokenService ao emitir e verificar.
      Returns:
      o issuer (iss) do JWT de sessão
    • setIssuer

      public void setIssuer(String v)
      Define o issuer do JWT de sessão (por-app). @param v valor configurado.
    • getFirebaseJwksUrl

      public String getFirebaseJwksUrl()
      Returns a URL do JWKS do Firebase, ou string vazia p/ usar o default do Google.. Env AUTH_FIREBASE_JWKS_URL. Em produção fica vazia (o validador usa o JWKS público do Google). Existe só para testes/e2e offline repontarem a busca de chaves p/ um JWKS local, sem chamar o Google. Consumido pelo FirebaseIdTokenValidator.
      Returns:
      a URL do JWKS do Firebase, ou string vazia p/ usar o default do Google
    • setFirebaseJwksUrl

      public void setFirebaseJwksUrl(String v)
      Define a URL do JWKS do Firebase (só testes/e2e). @param v valor configurado.
    • getLoginRateLimitPerMinute

      public int getLoginRateLimitPerMinute()
      Returns o máximo de tentativas de POST /login/** por IP por janela. (default 60). Env AUTH_LOGIN_RATE_LIMIT_PER_MINUTE. Consumido pelo XadmLoginRateLimitFilter (piso de brute-force). <= 0 desliga o limite.
      Returns:
      o máximo de tentativas de POST /login/** por IP por janela
    • setLoginRateLimitPerMinute

      public void setLoginRateLimitPerMinute(int v)
      Define o máximo de tentativas de login por janela. @param v valor configurado.
    • getLoginRateLimitWindowSeconds

      public int getLoginRateLimitWindowSeconds()
      Returns o tamanho da janela do rate-limit de login em segundos. (default 60). Env AUTH_LOGIN_RATE_LIMIT_WINDOW_SECONDS.
      Returns:
      o tamanho da janela do rate-limit de login em segundos
    • setLoginRateLimitWindowSeconds

      public void setLoginRateLimitWindowSeconds(int v)
      Define a janela do rate-limit de login em segundos. @param v valor configurado.
    • isConfigured

      public boolean isConfigured()
      True quando as cinco propriedades obrigatórias do login (Firebase + segredo de sessão) estão preenchidas — i.e. a auth das views está ligada. Fonte única do predicado "auth configurada?", consumido por ViewSecurityRule, ViewRejectionHandler e GlobalViewModel (antes recomputado em cada um; divergir arriscava postura fail-closed inconsistente).
      Returns:
      true se as 5 envs obrigatórias estão preenchidas