diff --git a/src/google/adk/sessions/vertex_ai_session_service.py b/src/google/adk/sessions/vertex_ai_session_service.py index 06a904c89..6628eb95f 100644 --- a/src/google/adk/sessions/vertex_ai_session_service.py +++ b/src/google/adk/sessions/vertex_ai_session_service.py @@ -178,6 +178,9 @@ async def get_session( ) get_session_api_response = _convert_api_response(get_session_api_response) + if get_session_api_response['userId'] != user_id: + raise ValueError(f'Session not found: {session_id}') + session_id = get_session_api_response['name'].split('/')[-1] update_timestamp = isoparse( get_session_api_response['updateTime'] diff --git a/tests/unittests/sessions/test_vertex_ai_session_service.py b/tests/unittests/sessions/test_vertex_ai_session_service.py index 6a9e0b46a..52fa42c91 100644 --- a/tests/unittests/sessions/test_vertex_ai_session_service.py +++ b/tests/unittests/sessions/test_vertex_ai_session_service.py @@ -292,6 +292,21 @@ async def test_get_empty_session(agent_engine_id): assert str(excinfo.value) == 'Session not found: 0' +@pytest.mark.asyncio +@pytest.mark.usefixtures('mock_get_api_client') +@pytest.mark.parametrize('agent_engine_id', [None, '123']) +async def test_get_another_user_session(agent_engine_id): + if agent_engine_id: + session_service = mock_vertex_ai_session_service(agent_engine_id) + else: + session_service = mock_vertex_ai_session_service() + with pytest.raises(ValueError) as excinfo: + await session_service.get_session( + app_name='123', user_id='user2', session_id='1' + ) + assert str(excinfo.value) == 'Session not found: 1' + + @pytest.mark.asyncio @pytest.mark.usefixtures('mock_get_api_client') async def test_get_and_delete_session():