Security
Token
| Property | Value |
|---|---|
| Roles |
[ "ROLE_API" "ROLE_USER" "ROLE_ADMIN" ] |
| Inherited Roles | none |
| Token | Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken {#1209 -user: IDCI\Bundle\KeycloakSecurityBundle\Security\User\KeycloakBearerUser {#1258 …} -roleNames: [ "ROLE_API" "ROLE_USER" "ROLE_ADMIN" ] -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 …} } |
11.44 ms | (none) |
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#555 -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#541 …} } |
1.65 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.11 ms | (none) |
Authenticators
| Status | Authenticator | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| success |
"IDCI\Bundle\KeycloakSecurityBundle\Security\Authenticator\KeycloakBearerAuthenticator"
|
Access Decision
affirmative
Strategy
| # | Voter class |
|---|---|
| 1 | "Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter" |
| 2 | "App\Security\CollectionVoter" |
| 3 | "App\Security\ImageVoter" |
| 4 | "App\Security\RouteVoter" |
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: "/routes/68d89c6f41df82c23d0c26e2/8/48/100.pbf" #requestUri: "/routes/68d89c6f41df82c23d0c26e2/8/48/100.pbf?accessKey=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJ5dHFSamsyQVp4VjRLclNvamtBX3Y3RjNPeVdPUDJ5bjh4QTc2OXRnUTE4In0.eyJleHAiOjE3ODM4NDUyMjUsImlhdCI6MTc4Mzg0NDkyNSwiYXV0aF90aW1lIjoxNzgzNjg3NTAxLCJqdGkiOiJvZnJ0cnQ6OTc4Y2NhNjgtMTBhNy03ZDIxLTQyMjYtNTc1ZTFkZjM1OWU0IiwiaXNzIjoiaHR0cHM6Ly9hdXRoLm15bW92ZW1lbnQuYXBwL3JlYWxtcy9teW1vdmVtZW50IiwiYXVkIjpbImFwcC1jbGllbnQiLCJqd3QtY2xpZW50Il0sInN1YiI6IjNhNjI5YTA3LWZlZDAtNDVkYS1iN2VlLWVlOGMyYmE0Yjc1YSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImFwcC1jbGllbnQiLCJzaWQiOiJlOTUwZGI4Yy1lYjgyLTQ1ZDAtYmEwNi05NmM1OGM2N2JlYmQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIiIsIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImRlZmF1bHQtcm9sZXMtbXltb3ZlbWVudCIsIlJPTEVfQVBJIiwiUk9MRV9VU0VSIiwib2ZmbGluZV9hY2Nlc3MiLCJST0xFX0FETUlOIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJqd3QtY2xpZW50Ijp7InJvbGVzIjpbIlJPTEVfQVBJIiwiUk9MRV9VU0VSIiwiUk9MRV9BRE1JTiJdfX0sInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwibmFtZSI6IkNhcnN0ZW4gRWlsZXJzIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiY2Fyc3Rlbi5laWxlcnNAZm5jbWVkaWEuZGUiLCJnaXZlbl9uYW1lIjoiQ2Fyc3RlbiIsImxvY2FsZSI6ImVuIiwiZmFtaWx5X25hbWUiOiJFaWxlcnMiLCJlbWFpbCI6ImNhcnN0ZW4uZWlsZXJzQGZuY21lZGlhLmRlIn0.L_E9Y8UsMtu0VrWja8u4gnXXZUvGRq0jm9D7kplC0_Mmhm0IXPc16b1mmn3YQPo4tA_cdynHjgHrKBLxHQ61UjTtBTXKegxGzxqao4uvoTG1JujudMq7lkQzFRFCrZFNshbaokiE9KbGC2i9Anma7812oFZ8s032VUohFwd9O4HgXo1GQU68swFIl7kImDBtMxPAS-IHSuAA0fCIcWZnZhSPXj8x5RupG2nXcFAG9F76_9esmOV-Pp9BMVX6QGZavAhk--YrtcCFtI_8w7_XAfAz3uS7ZMr9XhvnHa5LszRWjcjf8RaPprrWC2rQDhIw6lOyMMLcsOKC_-K9Ow5Isw&v=1759026228000" #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 : "" : "html" } |
||||||
|
|||||||||
| 2 | GRANTED | view | App\Document\RouteProxy {#1421 #visibility: 0 #id: "68d89c6f41df82c23d0c26e2" #appId: "null" #name: "Route 2025-09-27" #timestamp: DateTime @1783845702 {#1440 : 2026-07-12 08:41:42.784022 UTC (+00:00) } #updatedAt: DateTime @1759026287 {#1456 : 2025-09-28 02:24:47.634 +00:00 } #createdAt: ? DateTime #locations: Doctrine\Common\Collections\ArrayCollection {#1439 …} #geoJson: null #images: Doctrine\Common\Collections\ArrayCollection {#1441 …} #marker: App\Mapper\Cursor {#1442 …} #user: App\Document\User {#1443 …} #userIdentifier: "3a629a07-fed0-45da-b7ee-ee8c2ba4b75a" #transports: [] #participants: [] #participantStatus: null #kudosCount: null #kudosGiven: null #kudos: [] #activity: "car" #collections: App\Mapper\ProxyCursor {#1459 …} #importSource: null #externalActivityId: null #calories: null #deleted: false #aggregations: [ "latMaxBound" => 36.065064563195 "lngMinBound" => -112.17753430038 "latMinBound" => 35.327017169098 "lngMaxBound" => -111.83714946043 "distance" => 179.70560877351 "duration" => 19514 "minHeight" => 1816.2 "maxHeight" => 2291.3 "avgHeight" => 2100.7666271926 "points" => 5890 "avgSpeed" => 20.644282514524 "maxSpeed" => 35.136555555556 "minSpeed" => 0.039402276186166 "latStartpoint" => 36.065064563195 "lngStartpoint" => -112.11794622681 "latEndpoint" => 35.327017169098 "lngEndpoint" => -112.15592223695 "startTimestamp" => 1759006714000 "endTimestamp" => 1759026228000 ] #filterMeta: [ "version" => 2 "appliedAt" => MongoDB\BSON\UTCDateTime {#1453 +"milliseconds": "1783093195888" } "pointsDropped" => 59 "pointsSuppressed" => 113 ] #origin: null #plan: null -repositoryFactory: App\Mapper\RepositoryFactory {#537 …} -router: ? Symfony\Component\Routing\Generator\UrlGeneratorInterface -loadLazyProperties: true -loadedProperties: [] } |
||||||
|
|||||||||