Мы создали веб-приложение Spring MVC, которое в значительной степени полагается на пользователя, чтобы делать что-то в определенном порядке, и хотя оно не позволяет пользователям обойти это (не пытаясь очень сильно) в обычном случае (не предлагая варианты " перейдите к местам, «которых вы не должны в данный момент), у нас возникают некоторые проблемы, когда люди открывают другой экземпляр приложения в новой вкладке или окне браузера.Как эффективно предотвратить одновременное использование веб-приложения за один сеанс?
Поскольку приложение хранит модель домена в сеансе пользователя, использование программы в другом окне может испортить данные модели, мы уже внедрили механизм идентификации страницы, который проверяет пользователя с помощью программы в правильном а не с помощью навигации браузера, но мы по-прежнему сталкиваемся с проблемами, когда в одном окне происходят такие вещи, как сброс программы (это функция, перенаправление пользователя на главный экран и очистка модели домена), и затем пользователь пытается сделать что-то, полагаясь на модель домена, которая будет заполнена действительными данными в другом окне (что приведет к ошибке NullPointerException довольно быстро).
Вы не должны полагаться на пользователя. Сначала проверяет права пользователя на стороне сервера, прежде чем переходить к любым активным операциям. И не забудьте поймать исключения и проверить необходимые объекты на ** null **. Это сделает ваше приложение более надежным. – kapand