https://verwaltung.plattform-handwerk.kursimple.de/rest/course/193?showFields=1

Security

Token

Username
Authenticated
Property Value
Roles
[
  "ROLE_USER"
]
Inherited Roles
[
  "ROLE_FRONTEND"
]
Token
League\Bundle\OAuth2ServerBundle\Security\Authentication\Token\OAuth2Token {#676
  -user: League\Bundle\OAuth2ServerBundle\Security\User\NullUser {#631 …}
  -roleNames: [
    "ROLE_USER"
  ]
  -authenticated: true
  -attributes: [
    "access_token_id" => "3f51d2c041380ed5cac198f63a78e3f8eddb1a6c1bf4d6d06d5d033732ff67c30e4d73cba27fa3e6"
    "oauth_client_id" => "65c6366c620f9"
    "scopes" => [
      "user"
    ]
  ]
}

Firewall

rest Name
Security enabled
Stateless

Configuration

Key Value
provider App\User\Security\UserProvider
context rest
entry_point security.authenticator.oauth2.rest
user_checker security.user_checker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "oauth2"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#223
  -map: Symfony\Component\Security\Http\AccessMap {#224 …}
  -authenticationEntryPoint: null
  -logger: Symfony\Bridge\Monolog\Logger {#215 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#250
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#319 …}
  -sessionKey: "_security_rest"
  -logger: Symfony\Bridge\Monolog\Logger {#215 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#249 …}
  -dispatcher: Symfony\Component\EventDispatcher\EventDispatcher {#244 …}
  -registered: false
  -trustResolver: Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver {#198 …}
  -rememberMeServices: null
  -sessionTrackerEnabler: [
    Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#323 …}
    "enableUsageTracking"
  ]
}
6.45 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#174
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#259 …}
}
127.09 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#261
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#323 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#642 …}
  -map: Symfony\Component\Security\Http\AccessMap {#224 …}
  -authManager: null
  -exceptionOnNoToken: false
}
1.19 ms (none)

Authenticators

Authenticator Supports Duration Passport
"League\Bundle\OAuth2ServerBundle\Security\Authenticator\OAuth2Authenticator"
117.30 ms
Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport {#153
  #user: League\Bundle\OAuth2ServerBundle\Security\User\NullUser {#631 …}
  -badges: [
    "Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge" => Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge {#142
      -userIdentifier: ""
      -userLoader: Closure(string $userIdentifier): UserInterface {#152 …}
      -user: League\Bundle\OAuth2ServerBundle\Security\User\NullUser {#631 …}
    }
    "League\Bundle\OAuth2ServerBundle\Security\Passport\Badge\ScopeBadge" => League\Bundle\OAuth2ServerBundle\Security\Passport\Badge\ScopeBadge {#667
      -resolved: true
      -scopes: [
        "user"
      ]
    }
  ]
  -attributes: [
    "accessTokenId" => "3f51d2c041380ed5cac198f63a78e3f8eddb1a6c1bf4d6d06d5d033732ff67c30e4d73cba27fa3e6"
    "oauthClientId" => "65c6366c620f9"
  ]
}

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\Security\Voter\CategoryVoter"
5
"App\Security\Voter\CourseDataVoter"
6
"App\Security\Voter\CourseFieldVoter"
7
"App\Security\Voter\CourseOccurrenceVoter"
8
"App\Security\Voter\CourseSecurityVoter"
9
"App\Security\Voter\CourseSeriesVoter"
10
"App\Security\Voter\CourseSubscriptionVoter"
11
"App\Security\Voter\CourseTypeVoter"
12
"App\Security\Voter\CourseVoter"
13
"App\Security\Voter\FrontendClientVoter"
14
"App\Security\Voter\InvoiceVoter"
15
"App\Security\Voter\OAuthClientVoter"
16
"App\Security\Voter\OccurrenceVoter"
17
"App\Security\Voter\OrderVoter"
18
"App\Security\Voter\PersonVoter"
19
"App\Security\Voter\VenueSecurityVoter"
20
"App\Security\Voter\VenueVoter"
21
"App\User\Security\Voter\ClientVoter"

Access decision log

# Result Attributes Object
1 GRANTED IS_AUTHENTICATED_FULLY
Symfony\Component\HttpFoundation\Request {#57
  +attributes: Symfony\Component\HttpFoundation\ParameterBag {#99 …}
  +request: Symfony\Component\HttpFoundation\InputBag {#105 …}
  +query: Symfony\Component\HttpFoundation\InputBag {#100 …}
  +server: Symfony\Component\HttpFoundation\ServerBag {#96 …}
  +files: Symfony\Component\HttpFoundation\FileBag {#97 …}
  +cookies: Symfony\Component\HttpFoundation\InputBag {#98 …}
  +headers: Symfony\Component\HttpFoundation\HeaderBag {#95 …}
  #content: ""
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/rest/course/193"
  #requestUri: "/rest/course/193?showFields=1"
  #baseUrl: ""
  #basePath: null
  #method: "GET"
  #format: "json"
  #session: Symfony\Component\HttpFoundation\Session\Session {#262 …}
  #locale: null
  #defaultLocale: "de"
  -preferredFormat: null
  -isHostValid: true
  -isForwardedValid: true
  -isSafeContentPreferred: null
  basePath: ""
}
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
ACCESS GRANTED
Show voter details
2 GRANTED view
App\Entity\Course {#1602
  #id: 193
  #created: DateTime @1760948540 {#1597
    date: 2025-10-20 08:22:20.0 UTC (+00:00)
  }
  #modified: DateTime @1760949975 {#1600
    date: 2025-10-20 08:46:15.0 UTC (+00:00)
  }
  #client: Proxies\__CG__\App\User\Entity\Client {#1423 …}
  #title: "2. Mitarbeiterschulung Schornsteinfegerinnung Tübingen 2025 - Online"
  #subtitle: null
  #courseNature: "Course"
  #subscription: null
  #description: "<h3><strong>2. Mitarbeiterschulung der Schornsteinfegerinnung Tübingen 2025</strong></h3><h3><strong>&nbsp;– jetzt anmelden!</strong>&nbsp;</h3>"
  #searchwords: null
  #price: 0.0
  #rabatt: null
  #taxRate: 0.0
  #occurrences: Doctrine\Common\Collections\ArrayCollection {#1593 …}
  #category: Proxies\__CG__\App\Entity\Category {#1825 …}
  #images: Doctrine\ORM\PersistentCollection {#1624 …}
  #number: "K-71-2024"
  #materialCost: 0.0
  #targetAgeMin: null
  #targetAgeMax: null
  #texts: Doctrine\ORM\PersistentCollection {#1913 …}
  #series: null
  #type: Proxies\__CG__\App\Entity\CourseType {#1933 …}
  #invoiceUpperComment: null
  #invoiceLowerComment: null
  #invoiceLowerCommentDebit: null
  -courseProviders: Doctrine\ORM\PersistentCollection {#1993 …}
  +fields: [
    [
      "id" => 6
      "name" => "Kurs-Nr."
      "value" => ""
    ]
    [
      "id" => 31
      "name" => "Affiliate-Kurs-Link"
      "value" => ""
    ]
    [
      "id" => 34
      "name" => "Teilnehmeradresse"
      "value" => ""
    ]
    [
      "id" => 35
      "name" => "MetaDescription"
      "value" => ""
    ]
  ]
}
"App\Security\Voter\CategoryVoter"
ACCESS ABSTAIN
"App\Security\Voter\CourseDataVoter"
ACCESS ABSTAIN
"App\Security\Voter\CourseFieldVoter"
ACCESS ABSTAIN
"App\Security\Voter\CourseOccurrenceVoter"
ACCESS ABSTAIN
"App\Security\Voter\CourseSecurityVoter"
ACCESS GRANTED
Show voter details