Security

Token

Authenticated
Property Value
Roles
[
  0 => "ROLE_TENANT_USER"
  1 => "ROLE_API_USER"
  3 => "TENANT_USER"
]
Inherited Roles none
Token
Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken {#753
  -user: Proxies\__CG__\App\Entity\Main\TenantUser {#575 …}
  -roleNames: [
    0 => "ROLE_TENANT_USER"
    1 => "ROLE_API_USER"
    3 => "TENANT_USER"
  ]
  -attributes: []
  -firewallName: "main"
}

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.in_memory
context (none)
entry_point (none)
user_checker security.user_checker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "App\Security\ApiKeyAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#644
  -map: Symfony\Component\Security\Http\AccessMap {#643 …}
  -logger: Monolog\Logger {#659 …}
  -httpPort: 80
  -httpsPort: 443
}
(none) (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#702
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#695 …}
}
10.45 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#709
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#363 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#704 …}
  -map: Symfony\Component\Security\Http\AccessMap {#643 …}
}
0.61 ms (none)

Authenticators

Status Authenticator
success
"App\Security\ApiKeyAuthenticator"
Lazy no
Duration 1.32 ms
Passport
Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport {#717
  #user: Proxies\__CG__\App\Entity\Main\TenantUser {#575 …}
  -badges: [
    "Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge" => Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge {#647
      -userLoader: Closure($apiKey) {#718 …}
      -user: Proxies\__CG__\App\Entity\Main\TenantUser {#575 …}
      -identifierNormalizer: null
      -userIdentifier: "7698a68238a20b789118ec4251d5a3b0"
      -attributes: null
    }
  ]
  -attributes: []
}
Badges UserBadge

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\RoleVoter"

Access decision log

# Result Attributes Object
1 GRANTED ROLE_API_USER
Symfony\Component\HttpFoundation\Request {#2
  +attributes: Symfony\Component\HttpFoundation\ParameterBag {#15 …}
  +request: Symfony\Component\HttpFoundation\InputBag {#5 …}
  +query: Symfony\Component\HttpFoundation\InputBag {#10 …}
  +server: Symfony\Component\HttpFoundation\ServerBag {#18 …}
  +files: Symfony\Component\HttpFoundation\FileBag {#17 …}
  +cookies: Symfony\Component\HttpFoundation\InputBag {#16 …}
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#19 …}
  #content: ""
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/api/recipients/changes"
  #requestUri: "/api/recipients/changes?since=2026-03-17T16:32:53%2B00:00&limit=1000"
  #baseUrl: ""
  #basePath: null
  #method: "GET"
  #format: "json"
  #session: Symfony\Component\HttpFoundation\Session\Session {#1470 …}
  #locale: null
  #defaultLocale: "en"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: ? bool
  -trustedValuesCache: [
    "2\x0081.149.162.20, 172.69.224.109\x00192.168.3.178\x00" => [
      "172.69.224.109"
      "81.149.162.20"
    ]
    "4\x00\x00\x00" => []
    "32\x00\x00\x00" => []
    "8\x00https\x00\x00" => [
      "https"
    ]
    "16\x00\x00\x00" => []
  ]
  -isIisRewrite: false
  basePath: ""
}
"Symfony\Component\Security\Core\Authorization\Voter\RoleVoter"
GRANTED
The user has ROLE_API_USER.
Show voter details