Class StaticBearerTokenValidator
java.lang.Object
br.com.xadm.comum.seguranca.StaticBearerTokenValidator
- All Implemented Interfaces:
io.micronaut.core.order.Ordered, io.micronaut.security.token.validator.TokenValidator<io.micronaut.http.HttpRequest<?>>
@Singleton
public class StaticBearerTokenValidator
extends Object
implements io.micronaut.security.token.validator.TokenValidator<io.micronaut.http.HttpRequest<?>>
Valida o Bearer token estático configurado em
app.api-token (env <APP>_API_TOKEN).
A comparação é constant-time
(MessageDigest.isEqual(byte[], byte[]) sobre os bytes UTF-8), não String.equals — este último
curto-circuita no primeiro byte divergente e vaza o prefixo correto por tempo de resposta. Um
token esperado branco/ausente nunca autentica (fail-closed), e o @Value tem default
vazio: app que não usa Bearer estático sobe normal com o validador dormente, sem quebrar o boot.
Dormência tem limite: o par property declarada + token vazio é misconfig (401 em 100% do
/api/** com o app healthy), e quem o transforma em boot recusado é o BearerTokenGuard
— este validador não conhece a declaração da property, só o valor resolvido.
-
Field Summary
Fields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionStaticBearerTokenValidator(String expectedToken) Cria o validador com o token esperado injetado da configuração. -
Method Summary
Modifier and TypeMethodDescriptionorg.reactivestreams.Publisher<io.micronaut.security.authentication.Authentication> validateToken(String token, 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
-
Constructor Details
-
StaticBearerTokenValidator
Cria o validador com o token esperado injetado da configuração.- Parameters:
expectedToken- Bearer token estático configurado emapp.api-token; default vazio (validador dormente) quando a property está ausente.
-
-
Method Details
-
validateToken
public org.reactivestreams.Publisher<io.micronaut.security.authentication.Authentication> validateToken(String token, io.micronaut.http.HttpRequest<?> request) - Specified by:
validateTokenin interfaceio.micronaut.security.token.validator.TokenValidator<io.micronaut.http.HttpRequest<?>>
-