Я работаю над управлением историей для своего приложения. У меня есть два представления, одно для входа в систему, а другое для основного приложения. Я добавил локальные ссылки #login и #application. Теперь в идеале, что должно произойти, когда пользователь открывает приложение, он должен видеть представление входа в систему с токеном #login. Это работает нормально. Затем, когда его учетные данные проверены, он переходит к представлению приложения с токеном #application. И когда он выходит из системы, он возвращается к #login. Все это работает нормально. Но что меня беспокоит, так это то, что когда я вручную меняю токен ссылки с #login на #application, основное приложение открывается сразу после того, как я вышел из системы. Но когда я пытаюсь сделать то же самое в новой вкладке, все работает нормально. Приложение уязвимо для атак, которые необходимо устранить. Мне нужна помощь здесь.
//When application loads
History.newItem("application",true);
//When login screen loads //
History.newItem("login",true);
//On change
History.addValueChangeHandler(new ValueChangeHandler<String>(){
@Override
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
if (historyToken.substring(0, 5).equals("login")) {
login();
}
if (historyToken.substring(0, 11).equals("application")) {
mainApplicationView();
}
});
Когда я выхожу из системы, вызывается метод login(), который загружает соответствующие панели в RootPanel, а также имеет внутри токен #login. Также из rootpanel удалены основные панели приложений.