Stormpathを使用したSpring Security
1. 概要
Stormpathは、SpringBootとSpringSecurityの確実なサポートを開発し、インフラストラクチャとサービスとの統合を非常に簡単にしました。
この記事では、a minimalistic setup and integration of Stormpath with Spring Security.について見ていきます。
2. ストームパスの設定
Stormpathを実際に統合する前に、Stormpathのクラウドにアクセストークンを作成する必要があります。 そのために、私たちは彼らのウェブサイトでsign upする必要があります。 Please remember that for development purpose we’ll need to sign up as a developer –フリーモードを使用して月に10000回のAPI呼び出しを提供します。
もちろん、すでにアクティブなStormpathアカウントを持っている場合は、それを直接loginで使用できます。
次に、APIキーを作成する必要があります。 Developers Tools内の“Manage API Keys”リンクをクリックすると、「*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を使用する利点の1つは、SpringSecurityを構成するために多くの定型コードを追加する必要がないことです。 次の数行のコードは、アプリケーションを完全に構成するために必要なすべてです。
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.apply(stormpath());
}
}
stormpath()は静的メソッドであり、SpringSecurityとの単純な統合には実際には十分です。
ここでさらに興味深いのは、ログインやサインアップなどを設計するために追加のHTMLページを作成する必要がないことです。 Stormpathはそれらのページを生成します。ただし、必要に応じて、カスタムページを作成し、Stormpathの機能を統合する場合があります。
3.3. Application.properties
このベアボーンアプリケーションの構築はほぼ完了です。 以前にapplication.propertiesファイルで作成したAPIキーの詳細を追加する必要があります。
stormpath.client.apiKey.id = // your api id
stormpath.client.apiKey.secret = // your api secret
ストームパスガイドラインに従って、機密データをapplication.propertiesで使用するのではなく、JVM環境変数に配置することが常にベストプラクティスです。
これらを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を見つけることができます。