Class SessionTokenService
java.lang.Object
br.com.xadm.comum.seguranca.SessionTokenService
@Singleton
@Requires(property="auth.session-secret",
notEquals="")
public class SessionTokenService
extends Object
Emite e verifica JWTs HS256 usados como cookie de sessão das views.
Segredo via AuthSettings.getSessionSecret() (env AUTH_SESSION_SECRET;
mínimo 32 chars — exigência do MACSigner). Tokens carregam claims
sub, email, name, iss, iat, exp, jti. O iss vem de
AuthSettings.getIssuer() (env AUTH_ISSUER) — config por-app, a lib não
fixa o tenant (reconciliação onda-2: antes hardcoded por cópia).
Bean condicional: só é instanciado quando auth.session-secret está
configurado. Em modo dev/test sem segredo, a auth das views fica em bypass.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordClaims de uma sessão válida. -
Constructor Summary
ConstructorsConstructorDescriptionSessionTokenService(AuthSettings settings) Cria o serviço de sessão com relógio do sistema. -
Method Summary
Modifier and TypeMethodDescriptionissueSession(String uid, String email, String name) Emite JWT HS256 com TTL configurado emAuthSettings.getSessionTtlSeconds().
-
Constructor Details
-
SessionTokenService
Cria o serviço de sessão com relógio do sistema.- Parameters:
settings- configurações de auth.
-
-
Method Details
-
issueSession
Emite JWT HS256 com TTL configurado emAuthSettings.getSessionTtlSeconds().- Parameters:
uid- identificador do usuário (sub).email- email do usuário.name- nome do usuário.- Returns:
- o token JWT serializado.
-
verify
- Parameters:
token- o JWT serializado.- Returns:
- os claims da sessão válida.
- Throws:
AuthException- código"invalid_session"em qualquer falha (assinatura inválida,issdivergente, expirado, parse error).
-