Security

Token

nachbi@gmail.com Username
Authenticated
Property Value
Roles
[
  "ROLE_ORGANIZATION"
  "ROLE_USER"
]
Inherited Roles none
Token
Lexik\Bundle\JWTAuthenticationBundle\Security\Authenticator\Token\JWTPostAuthenticationToken {#575
  -user: App\Core\Entity\User\Access {#759 …}
  -roleNames: [
    "ROLE_ORGANIZATION"
    "ROLE_USER"
  ]
  -attributes: []
  -firewallName: "api_admin"
  -token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NzUyMTM3MTIsImV4cCI6MTc3NzgwNTcxMiwicm9sZXMiOlsiUk9MRV9PUkdBTklaQVRJT04iLCJST0xFX1VTRVIiXSwidXNlcm5hbWUiOiJuYWNoYmlAZ21haWwuY29tIiwiZnVsbG5hbWUiOiJUY2hpbmRhIE5hY2hiaSIsImVtYWlsIjoibmFjaGJpQGdtYWlsLmNvbSIsInRva2VuIjoiNjljZDBhOTA3OGFlNSIsImNvbmZpcm1hdGlvbl90b2tlbiI6IkdaSlROM2NyY1ljaE5rUk1jalFhVFo0V3QxYVdWN0I3OW9yMmpDM0tKbUkiLCJhY3RvciI6eyJpZCI6MSwiZmlyc3RuYW1lIjoiTmFjaGJpIiwibGFzdG5hbWUiOiJUY2hpbmRhIiwiYmlydGhQbGFjZSI6IiIsImdlbmRlciI6IndvbWFuIn0sImNvbnRleHRUeXBlIjoiYWRtaW5pc3RyYXRvciIsIndvcmtzcGFjZSI6eyJjb250ZXh0VHlwZSI6ImFkbWluaXN0cmF0b3IiLCJvcmdhbml6YXRpb25JZCI6MSwib3JnYW5pemF0aW9uTmFtZSI6Ik5hY2hiaSBUY2hpbmRhIn0sImN1cnJlbnRfY29tcGFueV9pZCI6MSwiYWNjb3VudF9pZCI6MSwicm9sZXNrZXlzIjpbXX0.Z8MO1etHH1OBcG3XtNphIHz5N7AVsecslm4SpXGJ3_0rofqObMXE96fy9lNVomI2MC28URhJUmYvU3LRkPw8FwKchANIi3YIg5r7otHOUdJPHHiMrSIBJVgJUNRUTNlT_0BaeQCg8DKOtKox3VfcbSOOKTvPzZy1w0z0FOlGnTP09UA4Rz4jGXZuzjhRQh9tVvdP4mLKWPfM3e4WC-iNhlFVo2rZzl5GViQAxjGBgHRy-bYigF0TKG6qTf4BdM9mmBDL8ALZsY-fJT40PgX_Mu79NOjHc7jbYttbQ1dk4-biFBJ1YrzvEG4Ch1kedkYXWNhv3Juix7qPY-5oblwoTQ"
}

Firewall

api_admin Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_db_users_provider
context (none)
entry_point security.authenticator.jwt.api_admin
user_checker security.user_checker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "jwt"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#358
  -map: Symfony\Component\Security\Http\AccessMap {#359 …}
  -logger: Symfony\Component\HttpKernel\Log\Logger {#39 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#386
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#376 …}
}
65.40 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#1605
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#431 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#1596 …}
  -map: Symfony\Component\Security\Http\AccessMap {#359 …}
}
0.30 ms (none)

Authenticators

Authenticator Supports Authenticated Duration Passport Badges
"Lexik\Bundle\JWTAuthenticationBundle\Security\Authenticator\JWTAuthenticator"
1.41 ms
Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport {#375
  #user: App\Core\Entity\User\Access {#759 …}
  -badges: [
    "Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge" => Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge {#287
      -userIdentifier: "nachbi@gmail.com"
      -userLoader: Closure($userIdentifier) {#292 …}
      -user: App\Core\Entity\User\Access {#759 …}
      -attributes: null
    }
  ]
  -attributes: [
    "payload" => [
      "iat" => 1775213712
      "exp" => 1777805712
      "roles" => [
        "ROLE_ORGANIZATION"
        "ROLE_USER"
      ]
      "username" => "nachbi@gmail.com"
      "fullname" => "Tchinda Nachbi"
      "email" => "nachbi@gmail.com"
      "token" => "69cd0a9078ae5"
      "confirmation_token" => "GZJTN3crcYchNkRMcjQaTZ4Wt1aWV7B79or2jC3KJmI"
      "actor" => [
        "id" => 1
        "firstname" => "Nachbi"
        "lastname" => "Tchinda"
        "birthPlace" => ""
        "gender" => "woman"
      ]
      "contextType" => "administrator"
      "workspace" => [
        "contextType" => "administrator"
        "organizationId" => 1
        "organizationName" => "Nachbi Tchinda"
      ]
      "current_company_id" => 1
      "account_id" => 1
      "roleskeys" => []
    ]
    "token" => "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NzUyMTM3MTIsImV4cCI6MTc3NzgwNTcxMiwicm9sZXMiOlsiUk9MRV9PUkdBTklaQVRJT04iLCJST0xFX1VTRVIiXSwidXNlcm5hbWUiOiJuYWNoYmlAZ21haWwuY29tIiwiZnVsbG5hbWUiOiJUY2hpbmRhIE5hY2hiaSIsImVtYWlsIjoibmFjaGJpQGdtYWlsLmNvbSIsInRva2VuIjoiNjljZDBhOTA3OGFlNSIsImNvbmZpcm1hdGlvbl90b2tlbiI6IkdaSlROM2NyY1ljaE5rUk1jalFhVFo0V3QxYVdWN0I3OW9yMmpDM0tKbUkiLCJhY3RvciI6eyJpZCI6MSwiZmlyc3RuYW1lIjoiTmFjaGJpIiwibGFzdG5hbWUiOiJUY2hpbmRhIiwiYmlydGhQbGFjZSI6IiIsImdlbmRlciI6IndvbWFuIn0sImNvbnRleHRUeXBlIjoiYWRtaW5pc3RyYXRvciIsIndvcmtzcGFjZSI6eyJjb250ZXh0VHlwZSI6ImFkbWluaXN0cmF0b3IiLCJvcmdhbml6YXRpb25JZCI6MSwib3JnYW5pemF0aW9uTmFtZSI6Ik5hY2hiaSBUY2hpbmRhIn0sImN1cnJlbnRfY29tcGFueV9pZCI6MSwiYWNjb3VudF9pZCI6MSwicm9sZXNrZXlzIjpbXX0.Z8MO1etHH1OBcG3XtNphIHz5N7AVsecslm4SpXGJ3_0rofqObMXE96fy9lNVomI2MC28URhJUmYvU3LRkPw8FwKchANIi3YIg5r7otHOUdJPHHiMrSIBJVgJUNRUTNlT_0BaeQCg8DKOtKox3VfcbSOOKTvPzZy1w0z0FOlGnTP09UA4Rz4jGXZuzjhRQh9tVvdP4mLKWPfM3e4WC-iNhlFVo2rZzl5GViQAxjGBgHRy-bYigF0TKG6qTf4BdM9mmBDL8ALZsY-fJT40PgX_Mu79NOjHc7jbYttbQ1dk4-biFBJ1YrzvEG4Ch1kedkYXWNhv3Juix7qPY-5oblwoTQ"
  ]
}
UserBadge

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
4
"App\Business\Security\BusinessVoter"

Access decision log

# Result Attributes Object
1 GRANTED IS_AUTHENTICATED_FULLY
Symfony\Component\HttpFoundation\Request {#2
  +attributes: Symfony\Component\HttpFoundation\ParameterBag {#16 …}
  +request: Symfony\Component\HttpFoundation\InputBag {#10 …}
  +query: Symfony\Component\HttpFoundation\InputBag {#13 …}
  +server: Symfony\Component\HttpFoundation\ServerBag {#19 …}
  +files: Symfony\Component\HttpFoundation\FileBag {#18 …}
  +cookies: Symfony\Component\HttpFoundation\InputBag {#17 …}
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#20 …}
  #content: ""
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/api/business/vehicle-types/"
  #requestUri: "/api/business/vehicle-types/?numberPerPage=100&currentPage=1&query=&fromDate=&toDate="
  #baseUrl: ""
  #basePath: null
  #method: "GET"
  #format: null
  #session: Symfony\Component\HttpFoundation\Session\Session {#3009 …}
  #locale: null
  #defaultLocale: "en"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: ? bool
  -trustedValuesCache: []
  -isIisRewrite: false
  basePath: ""
  format: "html"
}
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
ACCESS GRANTED
Show voter details
2 DENIED CAN_VIEW_VEHICLE_TYPE
null
"App\Business\Security\BusinessVoter"
ACCESS DENIED
Show voter details
3 GRANTED ROLE_ORGANIZATION
null
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS GRANTED
Show voter details
4 GRANTED Expression:
is_granted("CAN_VIEW_VEHICLE_TYPE") or is_granted("ROLE_ORGANIZATION")
null
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
ACCESS GRANTED
Show voter details