Spring Security с помощью Stormpath

Весенняя охрана с Stormpath

1. обзор

Stormpath разработал надежную поддержку Spring Boot и Spring Security, чтобы упростить интеграцию с их инфраструктурой и службами.

В этой статье мы рассмотримa minimalistic setup and integration of Stormpath with Spring Security.

2. Настройка Stormpath

Прежде чем мы действительно сможем интегрировать Stormpath, нам нужно создать токен доступа в облаке Stormpath. Для этого нам нужно посетитьsign up на их веб-сайте. Please remember that for development purpose we’ll need to sign up as a developer - что дает нам 10000 вызовов API в месяц использования бесплатного режима.

Конечно, если у нас уже есть активная учетная запись Stormpath, мы можем использовать ее и напрямуюlogin.

Теперь нам нужно создать ключи API; щелкнув ссылкуManage API Keys” внутриDevelopers Tools, мы увидим кнопку с названием «*Create API Key*“.

Нам нужно нажать на эту кнопку, чтобы сгенерировать ключ API. При нажатии нам будет предложено загрузить файл свойств, содержащий сведения о ключах API. Содержание будет выглядеть так:

apiKey.id = xxxxxxxxxxx
apiKey.secret = xxxxxxxxxxxx

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

3. Сборка приложения

3.1. Maven Зависимости

Чтобы использовать Stormpath API, нам нужно использовать их Java SDK. Для этого нам нужно интегрировать следующую зависимость вpom.xml:


    com.stormpath.spring
    stormpath-default-spring-boot-starter
    1.5.4

Вы можете найти последнюю версиюstormpath-default-spring-boot-starter вCentral Maven Repository.

3.2. Конфигурация Spring Security

Одним из преимуществ использования Stormpath является то, что нам не нужно добавлять много шаблонного кода для настройки Spring Security. Следующая пара строк кода - это все, что нам нужно для полной настройки приложения:

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.apply(stormpath());
    }
}

stormpath() - это статический метод, которого на самом деле будет достаточно для простой интеграции со Spring Security.

Что еще более интересно, нам не нужно создавать никаких дополнительных HTML-страниц для разработки логина, регистрации и т. Д. Stormpath сгенерирует эти страницы; однако, в зависимости от наших потребностей, мы можем создавать собственные страницы и интегрировать функции Stormpath.

3.3. Application.propertiesс

Мы почти закончили создание этого приложения. Нам просто нужно добавить детали ключей API, которые мы создали ранее в файлеapplication.properties:

stormpath.client.apiKey.id = // your api id
stormpath.client.apiKey.secret = // your api secret

Согласно рекомендациям Stormpath, рекомендуется всегда помещать конфиденциальные данные в переменные среды JVM, а не использовать их вapplication.properties.

Мы можем объявить их как параметры JVM:

-Dstormpath.client.apiKey.id=[api_id] -Dstormpath.client.apiKey.secret=[api_secret]

Теперь мы готовы запустить приложение и посмотреть результаты. Мы можем проверить следующие URL-адреса, чтобы проверить функциональность Stormpath:

  • /login - Страница входа

  • /register - Страница регистрации

  • /forgot - Страница забытого пароля

3.4. Другие опции

Также есть интересная опция для проверки на странице входа - ссылкаForgot Password в поле входа. При нажатии на эту ссылку мы будем перенаправлены на страницу/forgot, где сможем указать наш адрес электронной почты, который мы создали для регистрации. Это вызовет автоматическое письмо, содержащее ссылку для сброса пароля.

Однако нам нужно выполнить следующую настройку на панели администратора Stormpath, чтобы настроить это:

  • Щелкните ссылкуDirectories вверху страницы. Должны отображаться все каталоги, созданные с этой учетной записью. По умолчанию после регистрации Stormpath автоматически создает каталог с именемStormpath Administrator. Однако, если вы можете создавать другие каталоги и использовать их.

  • На левой панели щелкните ссылкуWorkflows & Emails, чтобы увидеть параметр сброса пароля. По умолчанию он отключен. Нам нужно нажать кнопкуEnabled, чтобы использовать его.

  • ВLink Base URL нам нужно указать URL-адрес нашего приложения, и этот URL-адрес будет прикреплен к электронному письму для сброса пароля.

4. Заключение

В этой быстрой статье мы узнали, как легко интегрировать Spring Security с Stormpath.

Существует множество других настроек, таких как проверка электронной почты и т. Д., Которые можно настроить с помощьюStormpath Admin Console; используя их, мы можем довольно быстро создать защищенное приложение.

И, как всегда, вы можете найти полный исходный кодon GitHub.