Вы можете использовать RequestFilter, который будет проверять сеанс пользователя.
Подробнее: Запросы на фильтрацию и ответы
Я нашел проблему. Это было не в коде, а в данных, возвращаемых из SQL-запроса. Этот символ был частью строки, хранящейся в базе данных. Этот один символ как-то заставил JSON вернуть Undefined. Когда я удалил из базы данных, все стало работать нормально.