Class AuthSupport

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

public final class AuthSupport extends Object
Contrato estável de autenticação das views: os atributos de request que o SessionAuthenticationFetcher popula após validar a sessão e que GlobalViewModel e CsrfTokens leem, o nome do cookie de sessão, e helpers idênticos entre apps.

Reconciliação (onda-2): a whitelist de views (WHITELIST_*/ isWhitelisted) é policy de rota específica do app (ex.: /compras/ no onpetro, /webhook/ no thoms) e fica local no app — não sobe pra lib. Aqui só o que é byte-idêntico entre os 3 apps: constantes de contrato + deveRecusarAnonimo/ isHttps. Ver .ia/001-onda2-reconciliacao.md.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Atributo de request onde o token CSRF de sessão fica exposto.
    static final String
    Atributo de request onde o email autenticado fica exposto.
    static final String
    Atributo de request onde o nome autenticado fica exposto.
    static final String
    Nome do cookie de sessão (JWT HS256).
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    deveRecusarAnonimo(AuthSettings settings, @Nullable io.micronaut.security.authentication.Authentication auth)
    Defesa em profundidade para escritas sensíveis das views: em produção (auth configurada) recusa uma requisição que chegou sem autenticação.
    static boolean
    isHttps(io.micronaut.http.HttpRequest<?> request)
    Indica se o request está sob HTTPS (direto ou via X-Forwarded-Proto do proxy).

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • AUTH_EMAIL_ATTR

      public static final String AUTH_EMAIL_ATTR
      Atributo de request onde o email autenticado fica exposto.
      See Also:
    • AUTH_NAME_ATTR

      public static final String AUTH_NAME_ATTR
      Atributo de request onde o nome autenticado fica exposto.
      See Also:
    • AUTH_CSRF_ATTR

      public static final String AUTH_CSRF_ATTR
      Atributo de request onde o token CSRF de sessão fica exposto.
      See Also:
  • Method Details

    • deveRecusarAnonimo

      public static boolean deveRecusarAnonimo(AuthSettings settings, @Nullable @Nullable io.micronaut.security.authentication.Authentication auth)
      Defesa em profundidade para escritas sensíveis das views: em produção (auth configurada) recusa uma requisição que chegou sem autenticação. A regra de view já bloqueia paths não-whitelistados em prod; isto é o reforço no controller caso um path de escrita seja whitelistado por engano. Em dev/test (bypass, auth não configurada) não exige nada — senão quebraria o bypass das views.
      Parameters:
      settings - config de auth (fonte do "auth configurada?")
      auth - autenticação da requisição (pode ser null em bypass)
      Returns:
      true se deve recusar a escrita (prod + requisição anônima)
    • isHttps

      public static boolean isHttps(io.micronaut.http.HttpRequest<?> request)
      Indica se o request está sob HTTPS (direto ou via X-Forwarded-Proto do proxy).
      Parameters:
      request - a requisição HTTP.
      Returns:
      true se sob HTTPS.