6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SpringSecurityで認証機能を実装②

Last updated at Posted at 2020-01-17

前回の続きです。

4、ログイン画面の実装。

・今回はログイン画面と実装します。ただ認証機能は実装しないので、ログイン画面からボタンを押せばフォームの内容に限らず画面を遷移させます

・ファイルの構成イメージは以下になります。コメントをズラーと書いてしまったので不要な場合は消して下さい。

 SpringBoot_Di_Security_DB_11.png

・コードは以下になります。

SpringLogin.app.controller/LoginController.java

package SpringLogin.app.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;

//import SpringLogin.app.service.UserService;

@Controller
public class LoginController {

//    @Autowired
//    UserService userService;

    @GetMapping("/login")
    public String getSignUp(Model model) {
        return "login";
    }
    
    //FormのSubmitを押すとPostメソッドがリクエストされます。()に書かれたURLのリクエストを受け取るとこのメソッドが発動します。
    @PostMapping("/login")
    public String postSignUp(Model model) {
    	/*
    	今回はリダイレクトを使います。画面遷移などファイル間をまたぐ場合はリダイレクト使います。
    	イメージ的にはGetメソッドを呼び出していると考えていいでしょう。
    	試しにリダイレクトせず通常のフォワード(return "xxx";)とすると画面自体は表示されますがURLが変わりません。
    	こうすると、遷移先で受け取りたいデータなどが受け取れないことがあるので、リダイレクトを使用したほうが良いでしょう。
    	*/
        return "redirect:/userList";
    }

}

:templates/login.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"></meta>
</head>
<body>
    <!-- コンテンツ部分 -->
    <div>
    	<!-- method="post"にすることでpostリクエストを発行することができます。th:actionでPostを処理するメソッドをURLで指定します。 -->
        <form method="post" th:action="@{/login}">
	        <div>
	        	<label>Username:</label>
	        	<!-- 今回の実装では使いませんがname属性を指定してあります。後で認証の時に使います。 -->
	        	<input type="text" name="username" />
	        </div>
	        <div>
	        	<label>Password:</label>
	        	<input type="password" name="password" />
	        </div>

    		<button type="submit">login</button>
        </form>
    </div>
</body>
</html>

・コードが書けたら、ブラウザでアプリを確認しましょう。
 URLが変わりますhttp://localhost:8080/login
 ページが表示されたら、Loginボタンを押下してuserListに遷移することを確認します。この時URLが変わっていることを確認しましょう。

SpringBoot_Di_Security_DB_12.gif

・動画の様に遷移できていればOKです!

 次からはこの記事のメインになります。ここもボリュームが大きくなりそうなのでいったん切ります。続きはこちら

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?