diff --git a/homeassistant/components/websocket_api/auth.py b/homeassistant/components/websocket_api/auth.py index 434775c9b9b..f175327bf28 100644 --- a/homeassistant/components/websocket_api/auth.py +++ b/homeassistant/components/websocket_api/auth.py @@ -6,6 +6,7 @@ from homeassistant.const import __version__ from homeassistant.components.http.auth import validate_password from homeassistant.components.http.ban import process_wrong_login, \ process_success_login +from homeassistant.auth.providers import legacy_api_password from .connection import ActiveConnection from .error import Disconnect @@ -81,7 +82,8 @@ class AuthPhase: elif self._hass.auth.support_legacy and 'api_password' in msg: self._logger.debug("Received api_password") if validate_password(self._request, msg['api_password']): - return await self._async_finish_auth(None, None) + user = await legacy_api_password.async_get_user(self._hass) + return await self._async_finish_auth(user, None) self._send_message(auth_invalid_message( 'Invalid access token or password')) diff --git a/tests/components/websocket_api/test_auth.py b/tests/components/websocket_api/test_auth.py index 4c0014e4783..9d2d2ce251e 100644 --- a/tests/components/websocket_api/test_auth.py +++ b/tests/components/websocket_api/test_auth.py @@ -132,7 +132,8 @@ async def test_auth_active_with_password_not_allow(hass, aiohttp_client): assert auth_msg['type'] == TYPE_AUTH_INVALID -async def test_auth_legacy_support_with_password(hass, aiohttp_client): +async def test_auth_legacy_support_with_password(hass, aiohttp_client, + legacy_auth): """Test authenticating with a token.""" assert await async_setup_component(hass, 'websocket_api', { 'http': {