Помни меня со Spring Security, разные вопросы - PullRequest
0 голосов
/ 06 апреля 2011

Я использую Spring Framework 3.0.5 и Spring Security 3.0.5 для разработки веб-приложения, в котором пользователи могут входить и выходить из системы с помощью Remember-Me-Service, если они этого хотят.

Поскольку у меня нет большого опыта, мне интересно, работает ли он правильно. Я использую PersistentTokenApproach (с моей собственной реализацией, потому что я использую Hibernate.) Я вижу, что cookie создается при входе в систему и удаляется при выходе из системы. Если у меня есть действующий файл Remember-Me-Cookie и я закрываю браузер, я снова успешно войду в систему, когда снова открою браузер. Пока все хорошо.

Теперь я просто хотел бы знать, работают ли те вещи, которые я заметил, как они ожидаются, или я, возможно, допустил ошибку.

1) Когда пользователь входит в систему без запомнить меня и вкладка браузера закрывается (не сам браузер), при открытии новой вкладки браузера он все еще проходит проверку подлинности (он использует тот же JSESSIONID). При закрытии браузера и повторном открытии он больше не проходит проверку подлинности. Относительно безопасности веб-приложения, это рекомендуемое («нормальное») поведение?

2) Когда запомнился я и пользователь успешно аутентифицирован (по логину или позже по cookie), проверки cookie больше не выполняются. это означает, что если пользователь в сети будет удалять куки из базы данных, пользователь все равно будет авторизован, ему будет разрешено просматривать даже защищенные страницы. Я предполагаю, что это происходит, потому что он был аутентифицирован прежде и продолжает использовать тот же SESSIONID. Когда я закрываю браузер и снова открываю его, он больше не аутентифицируется.

3) Когда я не владею cookie-файлом и не открываю главную страницу, для каждого отправляемого мной запроса (каждого изображения, каждого файла на странице) сервер проверяет наличие файла cookie запомнить. Это правильно?

Извините за вопросы новичка, но я просто хочу убедиться, что все работает как надо. :-) Заранее спасибо!

1 Ответ

1 голос
/ 21 апреля 2011

1) Что касается вкладок в браузере, я уверен, что они все используют один и тот же сеанс браузера. Если вы попытаетесь использовать gmail или другие веб-службы, вы увидите то же поведение при закрытии / открытии вкладок. В более старых версиях IE (возможно, версии 6) отдельные экземпляры имели свои собственные сеансы, если только они не были созданы из существующих экземпляров IE.

2) Звучит правильно. На самом деле не идеально подходить к базе данных при каждом запросе после их аутентификации.

3) Это правильно, так как по умолчанию весенние фильтры безопасности будут фильтровать на / * - и пытаться найти информацию для аутентификации. Вы можете добавить исключения в конфигурацию безопасности для ресурсов, которые вам не нужно защищать, т.е.

<http> <intercept-url pattern="/images/**" filters="none"/>
...