Open davidspiola opened 2 years ago
Object of class RFY\JWT\Security\JwtAccount could not be converted to string
119 Doctrine\DBAL\DBALException::wrapException(Doctrine\DBAL\Driver\PDO\MySQL\Driver, Error, "An exception occurred while executing 'SELECT n0_.…curity\JwtAccount could not be converted to string")
118 Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Doctrine\DBAL\Driver\PDO\MySQL\Driver, Error, "SELECT n0_.persistence_object_identifier AS persis…ier AND n3_.flow_security_account IN (?))) LIMIT 1", array|1|)
117 Doctrine\DBAL\Connection::handleExceptionDuringQuery(Error, "SELECT n0_.persistence_object_identifier AS persis…ier AND n3_.flow_security_account IN (?))) LIMIT 1", array|1|, array|1|)
116 Doctrine\DBAL\Connection::executeQuery("SELECT n0_.persistence_object_identifier AS persis…ier AND n3_.flow_security_account IN (?))) LIMIT 1", array|1|, array|1|, NULL)
115 Doctrine\ORM\Query\Exec\SingleSelectExecutor::execute(Doctrine\DBAL\Connection, array|1|, array|1|)
114 Doctrine\ORM\Query::_doExecute()
113 Doctrine\ORM\AbstractQuery::executeIgnoreQueryCache(NULL, 1)
112 Doctrine\ORM\AbstractQuery::execute(NULL, 1)
111 Doctrine\ORM\AbstractQuery::getResult()
110 Neos\Flow\Persistence\Doctrine\Query_Original::getResult()
109 Neos\Flow\Persistence\Doctrine\QueryResult_Original::getFirst()
108 Neos\Party\Domain\Repository\PartyRepository_Original::findOneHavingAccount(RFY\JWT\Security\JwtAccount)
107 Neos\Party\Domain\Service\PartyService_Original::getAssignedPartyOfAccount(RFY\JWT\Security\JwtAccount)
106 Neos\Flow\ObjectManagement\DependencyInjection\DependencyProxy::__call("getAssignedPartyOfAccount", array|1|)
105 Neos\Neos\Domain\Service\UserService_Original::getNeosUserForAccount(RFY\JWT\Security\JwtAccount)
104 Neos\Neos\Domain\Service\UserService_Original::Neos\Neos\Domain\Service\{closure}(NULL, RFY\JWT\Security\Authentication\Token\JwtToken)
103 array_reduce(array|1|, Closure, NULL)
102 Neos\Neos\Domain\Service\UserService_Original::getCurrentUser()
101 Neos\Flow\ObjectManagement\DependencyInjection\DependencyProxy::__call("getCurrentUser", array|0|)
100 Neos\Neos\Service\UserService_Original::getBackendUser()
99 Neos\Utility\ObjectAccess::getPropertyInternal(Neos\Neos\Service\UserService, "backendUser", false, true)
98 Neos\Utility\ObjectAccess::getPropertyPath(Neos\Neos\Service\UserService, "backendUser")
97 Neos\Flow\Aop\Pointcut\RuntimeExpressionEvaluator::{closure}(Neos\Flow\Aop\JoinPoint, Neos\Flow\ObjectManagement\ObjectManager)
96 Closure::__invoke(Neos\Flow\Aop\JoinPoint, Neos\Flow\ObjectManagement\ObjectManager)
Description
If you use an extended custom \Neos\Flow\Security\Account object for authentication a Doctrine exception occurs in \Neos\Party\Domain\Repository\PartyRepository::findOneHavingAccount. Once I cast my JwtAccount to an Account object, the code works as expected. In my case, the custom Account object is of type \RFY\JWT\Security\JwtAccount which is part of the https://github.com/rfyio/JWT package. This worked as expected in previous flow verions
Steps to Reproduce
Due to the lag of more profound knowledge, I used this method for casting
Expected behavior
Authentication works, and no Doctrine exception will be thrown without casting the object
Actual behavior
A doctrine exception occurs, and authentication fails.
Affected Versions
neos/flow 7.3.1