Having this problem too in v2.0.4. Converted from IPB 4.2 to XF1, and then from XF1 to XF 2.0.4. Whenever anyone tries to login with their old IPB account, this error happens:
- LogicException: Class XF\Authentication\IPBoard40x does not exist
- src/XF/Container.php:267
Stack trace
#0 src/XF/App.php(1312): XF\Container->createObject('XF\\Authenticati...', Array)
#1 src/XF/Container.php(228): XF\App->XF\{closure}('XF\\Authenticati...', Array, Object(XF\Container))
#2 src/XF/App.php(2455): XF\Container->create('auth', 'XF\\Authenticati...', Array)
#3 src/XF/Entity/UserAuth.php(54): XF\App->auth('XF\\Authenticati...', Array)
#4 src/XF/Entity/UserAuth.php(22): XF\Entity\UserAuth->getAuthenticationHandler()
#5 src/XF/Service/User/Login.php(122): XF\Entity\UserAuth->authenticate('aaf98b8bb2eeaba')
#6 src/XF/Pub/Controller/Login.php(83): XF\Service\User\Login->validate('aaf98b8bb2eeaba', NULL)
#7 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#8 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'Login', 'html', Object(XF\Mvc\ParameterBag), '', Object(XF\Pub\Controller\Login), NULL)
#9 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#10 src/XF/App.php(1891): XF\Mvc\Dispatcher->run()
#11 src/XF.php(328): XF\App->run()
#12 index.php(13): XF::runApp('XF\\Pub\\App')
#13 {main}
edit: I managed to fix it. In the
xf_user_authenticate
table, I replaced every instance of
XenForo_Authentication_IPBoard40x
in the
scheme_class
column with
XF:IpsForums4x
. Not sure why it hasn't happened automatically during the upgrade/conversion.