Главная » Spring » Включение функции «запомнить меня» Spring

0

Возможность аутентификации пользователей имеет большое значение для приложения. Но, с точки зрения пользователя, было бы неплохо, если бы приложение не всегда требовало вводить имя пользователя и пароль. Именно по этой причине многие сайты пред- лагают возможность «запомнить» пользователя после аутентифика- ции, чтобы при последующих обращениях к приложению ему не приходилось повторно проходить эту процедуру.

Фреймворк Spring Security дает возможность легко и просто вклю- чить в приложение поддержку функции «запомнить меня» . Для этого достаточно всего лишь добавить элемент <remember-me> в элемент <http>:

<http  auto-config="true"  use-expressions="true">

<remember-me

key="spitterKey"

token-validity-seconds="2419200" />

</http>

Здесь демонстрируется включение поддержки функции «запом- нить меня» с некоторыми дополнительными настройками. При ис-

пользовании элемента <remember-me> без атрибутов автоматическая аутентификация реализуется за счет сохранения в cookie специаль- ного маркера, который остается действительным в течение двух недель. Однако в данном случае указывается, что маркер должен оставаться действительным в течение четырех недель (2 419 200 се- кунд).

Маркер, сохраняемый в cookie, конструируется из имени пользо- вателя, пароля, даты истечения срока хранения и секретного ключа. Вся эта информация шифруется с применением алгоритма MD5. По умолчанию секретный ключ имеет значение SpringSecured, но здесь ему явно было присвоено значение spitterKey, чтобы обособить при- ложение Spitter.

Достаточно просто. Теперь, когда поддержка функции «запом- нить меня» включена, необходимо обеспечить некоторый способ, с помощью которого пользователи могли бы потребовать запомнить их. Для этого в запрос следует включить параметр _spring_security_ remember_me. С этим прекрасно справляется простой флажок в форме аутентификации:

<input  id="remember_me"  name="_spring_security_remember_me" type="checkbox"/>

<label for="remember_me" class="inline">Remember me</label>

До настоящего момента все внимание уделялось обеспечению безопасности на уровне веб-запросов. Поскольку фреймворк Since Spring Security чаще используется для обеспечения безопасности веб-приложений, многие забывают, что он способен обеспечивать безопасность на уровне вызовов методов. Поэтому перейдем к изу- чению поддержки безопасности в Spring Security на уровне методов.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии