Hallo zusammen
Ich habe ein Problem mit Symfony. Und zwar werden, scheinbar, meine Sessions falsch unserialisiert.
Die Ausgangslage:
Ich habe eine neue Rolle ROLE_SUBSCRIBER erstellt.
Diese Rolle wird der LoginEntity in einem eigenen UserProvider zugewiesen:
Das sieht danach super aus, der Login funktioniert soweit auch. Allerdings wird danach bei der Weiterleitung irgendetwas komisch zurückgewandelt. Im AccessListener erhalte ich den korrekten User (mit den korrekten Rollen), allerdings setzt er die LoginEntity im Attribut *roles* ein. Ich komme trotz Debugging in den Symfony-Untiefen nicht zu einem Entschluss, wieso das so passiert (oder: wo das passiert). Das Bild aus dem Debugger: https://hostr.co/1F0QLwOccbn1
Hat mir jemand einen Tipp, wo ich ansetzen muss?
Ich habe ein Problem mit Symfony. Und zwar werden, scheinbar, meine Sessions falsch unserialisiert.
Die Ausgangslage:
Ich habe eine neue Rolle ROLE_SUBSCRIBER erstellt.
PHP-Code:
class SubscriberRole extends AbstractRole {
public function getRole() {
return 'ROLE_SUBSCRIBER';
}
}
PHP-Code:
class LoginEntity {
/**
* @param \Symfony\Component\Security\Core\Role\Role[] $roles
*/
public function setRoles(array $roles) {
if (!is_array($this->roles)) {
$this->roles = [];
}
foreach ($roles as $role) {
if (!in_array($role, $this->roles)) {
$this->roles[] = $role;
}
}
}
}
// im UserProvider
$User->setRoles([new SubscriberRole(), 'IS_AUTHENTICATED_FULLY']);
Hat mir jemand einen Tipp, wo ich ansetzen muss?
Kommentar