2014-02-17 8 views
0

Я занимаюсь веб-проектом. Одним из требований является возможность входа в систему с двумя разными учетными записями пользователей в одном браузере.Spring Security 2 userdetail за один сеанс

Например, если у меня есть сайт www.myproject.com/member и я открываю новую вкладку и говорю, что я снова зашел на этот раз в администратор www.myproject.com/admin. Теперь, если я попытаюсь получить доступ к некоторым моим пользовательским функциям, скажите: www.myproject.com/member/user-detail, я получаю доступ к отказу от ответа. Я понимаю, почему, поскольку весенняя безопасность только сохраняет 1 пользовательскую деталь за раз. Я хочу, чтобы несколько учетных записей с разными ролями регистрировались в одном браузере.

Теперь вы знаете какую-либо работу о том, как это сделать?

Отредактировано:

Я хочу, чтобы иметь возможность войти в систему на нескольких вкладках браузера до тех пор, как пользователи вошедшего в разные роли.

+0

открыть новое приватное окно;) – Mannekenpix

+0

Серьезно, как это работает? – stackjc

+0

Вопрос: Как вы будете обрабатывать, какой запрос принадлежит кому пользователю? Вы должны написать полную пользовательскую реализацию. Я думаю, что это очень плохая идея. Это больше не будет работать на примере: SecurityContextHolder.getContext(). GetAuthentication(); Почему такое требование? – Mannekenpix

ответ

0

Поведение, которое вы видите на одной вкладке, выписываете другую, является нормальным для сайтов с маркером безопасности, хранящимся в одном файле cookie. Это связано с тем, что файл cookie с сохраненной пружиной хранится по доменному имени и логинному пути (что-то вроде www.myproject.com/login).

Для просмотра этого используйте отладчик Chrome или Firebug для просмотра файлов cookie приложения.

Большинство веб-приложений ведут себя так, например, gmail до тех пор, пока не так давно, было такое же поведение: при входе на одну вкладку на другой вкладке вышел другой пользователь на другой вкладке.

В последнее время это изменение было изменено в gmail, а это означает, что они больше не хранят токен безопасности в одном cookie, например, в качестве безопасности весны. Маловероятно, что они выставляют токен безопасности в Javascript, он все равно должен находиться в файле cookie HttpOnly. Вероятно, в каждом запросе заполняется заголовок запроса, который должен учитывать пользователь.

Таким образом, в веб-приложениях могут быть разные логины на вкладку, но весенняя безопасность в настоящее время не поддерживает его. См. Это question для некоторых идей о том, как его реализовать.

+0

Я прочитал эту тему, это похоже на мою проблему. [link] (http://forum.spring.io/forum/spring-projects/security/110030-how-to-enable-multiple-user-logins-on-multiple-browser-tabs-or-instances). Я не пробовал использовать Spring webflow, поэтому я попытался немного прочитать документ, но не мог понять, как я могу решить свою проблему, используя его. – stackjc

Смежные вопросы