Class CsrfTokens
java.lang.Object
br.com.xadm.comum.seguranca.CsrfTokens
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 Summary
Modifier and TypeMethodDescriptionstatic StringtokenFor(byte[] sessionSecret, SessionTokenService.SessionClaims claims) Token CSRF determinístico da sessão:HMAC-SHA256(session-secret, uid:exp).static voidValida o_csrfsubmetido contra o token esperado (atributoAuthSupport.AUTH_CSRF_ATTRsetado peloSessionAuthenticationFetcher).
-
Method Details
-
tokenFor
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
Valida o_csrfsubmetido contra o token esperado (atributoAuthSupport.AUTH_CSRF_ATTRsetado peloSessionAuthenticationFetcher). 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 sernull).
-