Class CsrfTokens

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

public final class CsrfTokens extends Object
Token CSRF dos forms de view. Derivado da sessão — estável enquanto a sessão durar, não-forjável sem o session-secret.

O SessionAuthenticationFetcher calcula o token após verificar a sessão e o expõe no atributo de request AuthSupport.AUTH_CSRF_ATTR; cada form de view renderiza-o no campo oculto _csrf (via GlobalViewModel) e os controllers o validam com verify(HttpRequest, String).

  • Method Details

    • tokenFor

      public static String tokenFor(byte[] sessionSecret, SessionTokenService.SessionClaims claims)
      Token CSRF determinístico da sessão: HMAC-SHA256(session-secret, uid:exp). O mesmo input (mesma sessão) sempre gera o mesmo token — multi-aba seguro.
      Parameters:
      sessionSecret - segredo HS256 da sessão.
      claims - claims da sessão atual.
      Returns:
      o token CSRF (hex).
    • verify

      public static void verify(io.micronaut.http.HttpRequest<?> request, String submitted)
      Valida o _csrf submetido contra o token esperado (atributo AuthSupport.AUTH_CSRF_ATTR setado pelo SessionAuthenticationFetcher). No-op quando o atributo está ausente — auth em bypass (dev/test), CSRF não é exigido. Divergência ou ausência do campo com auth ativo → HTTP 403.
      Parameters:
      request - a requisição HTTP a inspecionar.
      submitted - token CSRF recebido do form (pode ser null).