https://verwaltung.plattform-handwerk.kursimple.de/rest/course/182?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" => "8ac020e91ff6d287d4f8c3b985d995b32c27c158a97734e12e1d971d409425afcca8f0a477d0b226"
    "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"
  ]
}
5.24 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#174
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#259 …}
}
124.06 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
}
0.73 ms (none)

Authenticators

Authenticator Supports Duration Passport
"League\Bundle\OAuth2ServerBundle\Security\Authenticator\OAuth2Authenticator"
115.60 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" => "8ac020e91ff6d287d4f8c3b985d995b32c27c158a97734e12e1d971d409425afcca8f0a477d0b226"
    "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/182"
  #requestUri: "/rest/course/182?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: 182
  #created: DateTime @1752051429 {#1597
    date: 2025-07-09 08:57:09.0 UTC (+00:00)
  }
  #modified: DateTime @1752149312 {#1600
    date: 2025-07-10 12:08:32.0 UTC (+00:00)
  }
  #client: Proxies\__CG__\App\User\Entity\Client {#1423 …}
  #title: "Feuerstättenschau für bestellte Vertreter (nach § 11b SchfHwG) LIV Ulm"
  #subtitle: null
  #courseNature: "Course"
  #subscription: null
  #description: "<p>Der Lehrgang soll Schornsteinfegergesellen mit Meisterqualifikation die bereits als Vertreter bestellt wurden bzw. zukünftig eine solche Aufgabe anstreben, befähigen, eine Feuerstättenschau rechtssicher und fachlich richtig durchführen zu können. Ausreichende baurechtliche Vorkenntnisse (FeuVo BW, etc.) werden vorausgesetzt und sollten die Grundlage der fachlichen Eignung eines bestellten Vertreters darstellen.</p>"
  #searchwords: null
  #price: 201.11
  #rabatt: null
  #taxRate: 19.0
  #occurrences: Doctrine\Common\Collections\ArrayCollection {#1593 …}
  #category: Proxies\__CG__\App\Entity\Category {#1825 …}
  #images: Doctrine\ORM\PersistentCollection {#1624 …}
  #number: "K-60-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