プログラミング Java

【SpringSecurity】#3~ 独自のログイン画面

投稿日:2021年2月15日 更新日:

概要

オリジナルのログイン画面を実装する方法です。
以下の内容になっています。

  • ログイン用のHTMLを用意する。
  • Controllerにログインの遷移先を定義する。
  • SecurityConfigクラスに独自ログイン画面の設定をする。
  • ログアウトボタンを設置する。

SpringSecurityの公式サイトをベースにしていますので、
そちらも参照頂けばと思います。
10.10.1. フォームログイン

実装

ログイン画面

まず最初にログイン画面を用意します。
配置先:src/main/resources/templates/login.html

・${param.error}, ${param.logout}
 ログインエラー時とログアウト時に表示するメッセージを定義しています。

Controller

ログイン画面に遷移できるように、LoginControllerを作成します。
配置先:src/main/java/com/example/demo/controller/LoginController.java

SecurityConfig

オリジナルのログイン画面を使用できるようにするための設定を追加します。
配置先:src/main/java/com/example/demo/SecurityConfig.java

  • http.authorizeRequests()
  • permitAll()に”/login”のURLを追加します。
    これで誰でもアクセス可能になります。

  • http.formLogin()
  • loginPage(“/login”)
    ⇒GETでアクセスするログイン画面のURLを指定します。

    loginProcessingUrl(“/login”)
    ⇒POSTでリクエストするログイン用のURLを指定します。

ログアウト

SpringBootチュートリアルに追加する形で実装しているので、
header.htmlにログアウトボタンを追加しました。
配置先:src/main/resources/templates/header.html

基本的にPOSTリクエストすることになります。
 

デザインを変えたい場合

Bootstrapを使った例を追加しましたので、参考にしてみて下さい。
ログイン画面をデザインしよう!
 

まとめ

  • オリジナルのログイン用HTMLを用意すること。
  • Controllerにログイン画面への遷移先を定義すること。
  • SecurityConfigクラスにログイン画面の設定を追加すること。
  • ログアウトはPOSTで実装できる。

参考

SpringSecurityについてもう一歩踏み込んで学んでみたい人向けの教科書
Spring解体新書 セキュリティ編 Spring Securityを徹底解説: 記憶喪失になっても忘れはいけないセキュリティ対策集

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

【Java】LinkedHashSetの使い方(挿入順を保持するSet)

LinkedHashSetはHashSetのサブクラスであり、同じメソッドが実装されています。 メソッドの使い方であればHashSetと同じなので、HashSetの使い方を参照下さい。  ↓ 【Jav …

【SpringBoot入門】#13~ 独自のエラー画面の作成

概要 何らかのエラーが発生した場合に、エラー画面を表示して対応したいことがあります。 デフォルトのwhite label Error pageのままというわけにはいかないので、 独自のエラー画面を作成 …

困った,男性

あなたが読み難いコードを書いてしまう理由

はじめに 読みやすいコードを書きたい人と願う方のために執筆しました。 誰もが良いコードを書きたいと願っているはずだからです。(と私は信じています) というもの、後で自分が読み直した時、誰かにレビューを …

プログラミングスキルを向上させる3ステップ

プログラミングスキルを向上させるための3ステップです。 私自身が実践していることであり、向上を実感している方法です。 写経 本をベースに写経します。 写し書きをして動いたらOKではなく、以下のような問 …

【Java】モジュールシステムの概要と実装例

概要 Javaのモジュールシステムについて、概念的なイメージと実際のコード例で理解を深めるための記事です。 読者はJava Silverの資格勉強中の方やJava入門者を想定しています。 内容は以下の …

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。