POST http://api.stg.mymovement.app/users/add-push-token

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.13 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#555
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#541 …}
}
5.86 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.04 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"

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: "{"pushToken":"fhnEGzEi50ICiciQIsb5Yr:APA91bFpOAI8HZzPHt6l7JptkZdghmiJb9cKwA-a3GWIUtRRBofdm11oZ7KqaNUjtqW6Rg2XflVTq_OoigmpUy9hsPN1DsTbys1YSFbCCdj46lZkbW02Q1k"}"
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/users/add-push-token"
  #requestUri: "/users/add-push-token"
  #baseUrl: ""
  #basePath: null
  #method: "POST"
  #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