GET http://api.stg.mymovement.app/images/route/69be6f09dd9dad60f004a28b?format=avif&type=thumbnail

Security

Token

ba26d675-6aed-4540-b73a-c84a97f23450 Username
Authenticated
Property Value
Roles
[
  "ROLE_API"
  "ROLE_USER"
]
Inherited Roles none
Token
Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken {#1208
  -user: IDCI\Bundle\KeycloakSecurityBundle\Security\User\KeycloakBearerUser {#1251 …}
  -roleNames: [
    "ROLE_API"
    "ROLE_USER"
  ]
  -attributes: []
  -firewallName: "api"
}

Firewall

api Name
Security enabled
Stateless

Configuration

Key Value
provider App\Security\User\KeycloakBearerUserProvider
context api
entry_point IDCI\Bundle\KeycloakSecurityBundle\Security\EntryPoint\BearerAuthenticationEntryPoint
user_checker security.user_checker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "IDCI\Bundle\KeycloakSecurityBundle\Security\Authenticator\KeycloakBearerAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#506
  -map: Symfony\Component\Security\Http\AccessMap {#505 …}
  -logger: Monolog\Logger {#402 …}
  -httpPort: 80
  -httpsPort: 443
}
(none) (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#571
  -sessionKey: "_security_api"
  -registered: false
  -trustResolver: Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver {#408 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#488 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#66 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#357 …}
  -logger: Monolog\Logger {#402 …}
  -dispatcher: Symfony\Component\EventDispatcher\EventDispatcher {#401 …}
}
0.11 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#555
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#541 …}
}
1.34 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#1190
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#63 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#61 …}
  -map: Symfony\Component\Security\Http\AccessMap {#505 …}
}
0.12 ms (none)

Authenticators

Status Authenticator
success
"IDCI\Bundle\KeycloakSecurityBundle\Security\Authenticator\KeycloakBearerAuthenticator"
Lazy no
Duration 0.01 ms
Passport
Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport {#1200
  #user: IDCI\Bundle\KeycloakSecurityBundle\Security\User\KeycloakBearerUser {#1251 …}
  -badges: [
    "Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge" => Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge {#1201
      -userLoader: Closure() {#1202 …}
      -user: IDCI\Bundle\KeycloakSecurityBundle\Security\User\KeycloakBearerUser {#1251 …}
      -identifierNormalizer: null
      -userIdentifier: "Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ5dHFSamsyQVp4VjRLclNvamtBX3Y3RjNPeVdPUDJ5bjh4QTc2OXRnUTE4In0.eyJleHAiOjE3ODM3MTcwODIsImlhdCI6MTc4MzcxNjc4MiwiYXV0aF90aW1lIjoxNzgwNTE0OTA2LCJqdGkiOiJvZnJ0cnQ6ZmMwNmNkOTUtOTAwMC1kYWU3LTlmM2ItZTZmODM0ZTg0ZjI2IiwiaXNzIjoiaHR0cHM6Ly9hdXRoLm15bW92ZW1lbnQuYXBwL3JlYWxtcy9teW1vdmVtZW50IiwiYXVkIjpbImFwcC1jbGllbnQiLCJqd3QtY2xpZW50Il0sInN1YiI6ImJhMjZkNjc1LTZhZWQtNDU0MC1iNzNhLWM4NGE5N2YyMzQ1MCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImFwcC1jbGllbnQiLCJzaWQiOiI1MzQ5ZDhlZS1mZTlhLTQwZTYtODBkZC01MGE4OWI2YTBiNTEiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIiIsIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImRlZmF1bHQtcm9sZXMtbXltb3ZlbWVudCIsIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJqd3QtY2xpZW50Ijp7InJvbGVzIjpbIlJPTEVfQVBJIiwiUk9MRV9VU0VSIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiVmFuZXNzYSBIYXNlIiwicHJlZmVycmVkX3VzZXJuYW1lIjoidi5mb3Jtc2NobGFnQGdtYWlsLmNvbSIsImdpdmVuX25hbWUiOiJWYW5lc3NhIiwiZmFtaWx5X25hbWUiOiJIYXNlIiwiZW1haWwiOiJ2LmZvcm1zY2hsYWdAZ21haWwuY29tIn0.LPKqNxMoy_ql_rRRljzQv2wHTXsWEhqZsASpbJCIHx6M2er7MXLBNHzo5WMWZXea0YYTnwXrxV1-2hZswCL6uuDcrm12fXUi-zlqjqEhILhroWOIw3sMT-znFkLAoiRxXgWmNlmHSlEKfXWfX-efaZ6HbumNuA5z7XbWTi4ZPRJA-YsVfOOGborKF3noFBADus4I61oMqGZhkwQ0kjz_mWmEoCEAisTDL9D4lKSm8jcxDFXY8DBdjlT25EF5ENB5TfJre0k_Klt-nyzZVD-9yvjSc7QGX6KaMNpl6Qb7kqJTzA4iSmqf_YXVZOvaLKk9ihLipKZGdy_HHM5zjKa9pQ"
      -attributes: null
    }
  ]
  -attributes: []
}
Badges UserBadge

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
2
"App\Security\CollectionVoter"
3
"App\Security\ImageVoter"

Access decision log

# Result Attributes Object
1 GRANTED ROLE_API
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: "/images/route/69be6f09dd9dad60f004a28b"
  #requestUri: "/images/route/69be6f09dd9dad60f004a28b?type=thumbnail&format=avif"
  #baseUrl: ""
  #basePath: null
  #method: "GET"
  #format: null
  #session: Symfony\Component\HttpFoundation\Session\Session {#1193 …}
  #locale: null
  #defaultLocale: "en"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: ? bool
  -trustedValuesCache: []
  -isIisRewrite: false
  basePath: ""
  format: "html"
}
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
GRANTED
The user has ROLE_API.
Show voter details
2 GRANTED view
App\Document\ImageProxy {#1332
  #id: "69be6f09dd9dad60f004a28b"
  #updatedAt: null
  #latitude: 51.2330109
  #longitude: 6.7268345
  #timestamp: DateTime @1774087941 {#1350
    date: 2026-03-21 10:12:21.394 +00:00
  }
  #timeOffset: 3600000
  #timeZoneId: "CET"
  #comment: null
  #hash: "a3f092b3c8441fc9260de7b62efe67d1cf3aabe652094f94788ac71ec965913d"
  #name: "64e6aedb-481f-4ab3-b3b8-37c0730bd5c5.jpeg"
  #deleted: false
  +path: null
  #file: null
  +virtualReality: false
  +mimeType: null
  #route: App\Document\Route {#1353 …}
  -extension: null
  -repositoryFactory: App\Mapper\RepositoryFactory {#537 …}
  -loadLazyProperties: true
}
"App\Security\CollectionVoter"
ABSTAIN
"App\Security\ImageVoter"
GRANTED
Show voter details