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 (API_BEARER_TOKEN).

Endurecimento de segurança (0.3.0): 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

    Constructors
    Constructor
    Description
    Cria o validador com o token esperado injetado da configuração.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.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, wait

    Methods inherited from interface io.micronaut.core.order.Ordered

    getOrder
  • Constructor Details

    • StaticBearerTokenValidator

      public StaticBearerTokenValidator(@Value("${app.api-token:}") String expectedToken)
      Cria o validador com o token esperado injetado da configuração.
      Parameters:
      expectedToken - Bearer token estático configurado em app.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:
      validateToken in interface io.micronaut.security.token.validator.TokenValidator<io.micronaut.http.HttpRequest<?>>