ログイン機能を実装!SpringSecurity,Thymeleaf,Mysql連携 -part 1

spring security

ログイン機能を試してみたいんだけど…..

いろいろなサイトを見ながらやってるんだけど

なんだかうまくいかないの

ちゃんと基本から学んでいきたいわ

実は私自身も、いろいろなサイトを見ながら試してみたんです。

でもうまくいかなかった経験があります。

そこで今回は、ログイン機能をSpring Securityを使って

基本的なことから数回に分けて解説していきますね。

最終的にはデータベースとの連携を試します。

手っ取り早く、とにかく動かしてみよう!

Spring Securityをどんなものか、とにかく動かしてみます。

ほんとに簡単に動くんです。

まずは「pom.xml」に下記を追加します。

現時点の「pom.xml」の内容は下記のようになっています。

 

つぎにログイン後の表示画面を作成します。

dashboard.html」を作成します。

 

作成する場所には気をつけましょう!

resources>templatesの配下に作成しましょう

つぎにコントローラを作成します。

簡単なものです。

localhost:8080/dashboardにアクセスすると先程作成したdashboard.htmlを表示します。

では実際に動かしてみましょう!

あらっ!?

localhost:8080/dashboardにアクセスしたのになぜか

localhost:8080/loginにアクセスされちゃうわ

 

大丈夫です。

これで正解ですよ

じつはすでにSpring Securityが機能しているんですよ

でも、サインインのためのアカウントを何も作っていません。

どのようにログインすれば良いのでしょうか?

サーバーを起動した際のコンソールを覗いてみましょう

下記のような表示のあることを確認してください

実はこれがログインする際のパスワードになります。

ユーザー名にあたる部分には「user」を入力すれば大丈夫です。

パスワードをコピペして「Sign in」ボタンをクリックします。

ダッシュボードの画面が表示されるはずです。

 

とりあえず動かすならとっても簡単にできますね

でも、このままでは使い勝ってが悪いのでいろいろとカスタマイズしていきますね

事前準備!Mysqlデータベースを用意

Spring Securityでログイン機能を実装するにおいて

Mysqlデータベースを使用します。

ローカルにMysqlをインストールし起動しておいてください

ポイントですが、Mysqlが起動できたら「todo」という名前で、

データベースを作成しておいてくださいね

Mysqlに関しての詳細
mysql:  5.7
ユーザー:  user
パスワード:  dummy
ルートユーザパスワード:  dummypassword
データベース:  todo

以前の記事で、Docker内にMysqlを作成する方法

ご紹介しています。

Dockerを使用している方は参考にしてください。
ちなみに日本語化は特に必要ありません。

コピペでOK! DockerにMysqlを設定する【日本語化まで】

今回は、上記で作成した「todo」データベースを使用します。ちなみに上記の記事では、「todo」データベース内に「user」テーブルを作成してますが、これを削除してから使用しています。つまり「todo」データベース内にはテーブルが何もない状態から始めます。

ちなみに、テーブル削除コマンドは下記です。

記事内では、Mysql内のデータをわかりやすく表示するために「workbench」を使用しています。

 

では、前準備としてちゃんとデータベースに接続できるか確認します。

Mysqlデータベースに接続してみる

pom.xmlに下記を追加する

application.propertiesに下記を追加します。

上記の内容の中には

  • 接続先のデータベース:   todo
  • ユーザー名:  user
  • パスワード:  dummy

の情報が設定してあります。

 

つぎにユーザーに関するデータを保存するために

Userエンティティクラスを作成します。

getter setterも忘れずに設定しましょう

ここまで修正したらサーバーを再起動してみます。

コンソールを確認してみますしょう

userテーブルが作成されていますね

todoデータベース内をworkbenchから見てみましょう

ちゃんと作成されているのが確認できますね。

もしもうまくデータベースに接続できない場合は、

データーベース名やユーザー名、パスワードは正しいか

作成したユーザーがデータベースに接続できる権限があるのか

確認してみてください。

今回は以上になります。

お疲れさまでした。

次回からさらにspring securityに関して深堀りしていきますね。

 

コメント

タイトルとURLをコピーしました