Class MensageriaAdminRule

java.lang.Object
br.com.xadm.comum.mensageria.MensageriaAdminRule
All Implemented Interfaces:
io.micronaut.core.order.Ordered, io.micronaut.security.rules.SecurityRule<io.micronaut.http.HttpRequest<?>>

@Singleton public class MensageriaAdminRule extends Object implements io.micronaut.security.rules.SecurityRule<io.micronaut.http.HttpRequest<?>>
Gate da tela /admin/mensageria: exige sessão autenticada E e-mail terminando no domínio configurado (mensageria.admin.email-domain, default xadm.com.br).

O e-mail vem de authentication.getAttributes().get("email") — não de getName(), que no SessionAuthenticationFetcher devolve o uid. E-mail ausente/vazio conta como fora do domínio.

A rule só decide ALLOWED/REJECTED para o prefixo (UNKNOWN nas demais rotas). O shape da rejeição (302 /login para browser · 401 para JSON · 403 para autenticado fora do domínio) é contrato do app: Micronaut devolve 401 quando não há sessão e 403 quando há — e o ViewRejectionHandler/micronaut.security.redirect do app faz o 302.

  • Field Summary

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

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE

    Fields inherited from interface io.micronaut.security.rules.SecurityRule

    DENY_ALL, IS_ANONYMOUS, IS_AUTHENTICATED
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.reactivestreams.Publisher<io.micronaut.security.rules.SecurityRuleResult>
    check(io.micronaut.http.HttpRequest<?> request, @Nullable io.micronaut.security.authentication.Authentication authentication)
     
    int
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • check

      public org.reactivestreams.Publisher<io.micronaut.security.rules.SecurityRuleResult> check(io.micronaut.http.HttpRequest<?> request, @Nullable @Nullable io.micronaut.security.authentication.Authentication authentication)
      Specified by:
      check in interface io.micronaut.security.rules.SecurityRule<io.micronaut.http.HttpRequest<?>>
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface io.micronaut.core.order.Ordered