Class SessionAuthenticationFetcher
java.lang.Object
br.com.xadm.comum.seguranca.SessionAuthenticationFetcher
- All Implemented Interfaces:
io.micronaut.core.order.Ordered, io.micronaut.security.filters.AuthenticationFetcher<io.micronaut.http.HttpRequest<?>>
@Singleton
@Requires(property="auth.session-secret",
pattern=".+")
public class SessionAuthenticationFetcher
extends Object
implements io.micronaut.security.filters.AuthenticationFetcher<io.micronaut.http.HttpRequest<?>>
AuthenticationFetcher nativo das views: lê o cookie xadm_session (JWT HS256
emitido pelo SessionTokenService) e, se válido, devolve uma Authentication
com o papel ROLE_VIEW. Substitui a parte de autenticação do antigo AuthFilter.
Mantém o contrato dos atributos de request (AuthSupport.AUTH_EMAIL_ATTR etc.) que
o GlobalViewModel e o CsrfTokens já consomem — assim a migração do filtro não
toca esses dois. Coexiste com o TokenAuthenticationFetcher do Bearer (/api/**):
cada fetcher resolve a sua credencial.
Bean condicional: só existe quando auth.session-secret está configurado. Sem ele
(dev/test em bypass) não há fetcher — a regra de view libera as views. Gate pattern = ".+"
(0.7.3): com notEquals = "" e a property ausente o fetcher subia, o
SessionTokenService dele não instanciava e, com ele, o SecurityFilter — 500 em tudo.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringPapel do principal não-humano do smoke de produção (SmokeSessionController).static final StringPapel atribuído à sessão de view autenticada.Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionSessionAuthenticationFetcher(SessionTokenService sessionTokenService, AuthSettings settings) Cria o fetcher de sessão. -
Method Summary
Modifier and TypeMethodDescriptionorg.reactivestreams.Publisher<io.micronaut.security.authentication.Authentication> fetchAuthentication(io.micronaut.http.HttpRequest<?> request) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.core.order.Ordered
getOrder
-
Field Details
-
ROLE_VIEW
-
ROLE_SMOKE
Papel do principal não-humano do smoke de produção (SmokeSessionController). Vem do claimroledo JWT e acompanha oROLE_VIEW— sem ele o smoke não navegaria nenhuma rota logada, que é o motivo de existir. O que o distingue é oSmokeReadOnlyFilter, que corta qualquer método não-seguro para este papel.- See Also:
-
-
Constructor Details
-
SessionAuthenticationFetcher
Cria o fetcher de sessão.- Parameters:
sessionTokenService- serviço de validação do JWT de sessão.settings- configurações de auth (segredo usado para derivar o CSRF).
-
-
Method Details
-
fetchAuthentication
public org.reactivestreams.Publisher<io.micronaut.security.authentication.Authentication> fetchAuthentication(io.micronaut.http.HttpRequest<?> request) - Specified by:
fetchAuthenticationin interfaceio.micronaut.security.filters.AuthenticationFetcher<io.micronaut.http.HttpRequest<?>>
-