/** * @dataProvider storageScalarDataProvider */ public function testContainerBuiltWithStdClassContainsData(string $key, $value) { if ("" === $key || "" === $value || '' === $key) { $this->markTestSkipped('Null bytes or empty keys are not supported by PHP\'s stdClass'); } $session = DefaultSessionData::fromDecodedTokenData((object) [$key => $value]); self::assertTrue($session->has($key)); self::assertSame($value, $session->get($key)); }
/** * @param Token|null $token * * @return SessionInterface */ public function extractSessionContainer(Token $token = null) : SessionInterface { try { if (null === $token || !$token->verify($this->signer, $this->verificationKey)) { return DefaultSessionData::newEmptySession(); } return DefaultSessionData::fromDecodedTokenData((object) $token->getClaim(self::SESSION_CLAIM, new \stdClass())); } catch (\BadMethodCallException $invalidToken) { return DefaultSessionData::newEmptySession(); } }