diff --git a/team1/src/main/java/com/example/demo/controller/LoginController.java b/team1/src/main/java/com/example/demo/controller/LoginController.java index 23fc734..a6fa297 100644 --- a/team1/src/main/java/com/example/demo/controller/LoginController.java +++ b/team1/src/main/java/com/example/demo/controller/LoginController.java @@ -7,13 +7,13 @@ import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.form.LoginInfoForm; import com.example.demo.form.LoginUserForm; import com.example.demo.form.MessageForm; -import com.example.demo.service.impl.Login; +import com.example.demo.service.ReturnService; @Controller public class LoginController { @@ -21,57 +21,42 @@ public class LoginController { // // ログ出力用インスタンス private static final Logger LOGGER = Logger.getLogger(LoginController.class.getName()); - // ログイン処理を行う - private final Login login; - - // コンストラクタで部品を注入する(Autowired) @Autowired - public LoginController(Login login) { - this.login = login; - } + ReturnService service; - // 画面で使うフォームの初期化 - @ModelAttribute - public LoginUserForm loginUserForm() { - return new LoginUserForm(); + @GetMapping("/login") + public String view() { + return "login"; } // ログインボタンが押されたときの処理 @PostMapping("/doLogin") - public String doLogin(LoginInfoForm loginInfoForm, HttpSession session, Model model) { + public String doLogin(LoginInfoForm form, HttpSession session, Model model) { - try { - // 入力チェック(メールアドレスやパスワードの形が正しいか) - if (!LoginUserForm.checkParameter(loginInfoForm)) { - // エラーメッセージと、入力されたデータを画面に返す - model.addAttribute("messageError", new MessageForm("メールアドレス、パスワードの入力内容に誤りがあります")); - model.addAttribute("loginInfoForm", loginInfoForm); - return "login"; // login.html を表示 - } - - // 認証チェック(IDとパスワードが一致するか) - if (!login.canLogin(loginInfoForm)) { - // 間違っている場合のメッセージを画面に返す - model.addAttribute("messageError", new MessageForm("IDまたはパスワードが間違っています")); - model.addAttribute("loginInfoForm", loginInfoForm); - return "login"; // login.html を表示 - } - - // ログイン処理の実行 - LoginUser loginUser = login.doLogin(loginInfoForm); - - // セッション(サーバーの秘密のメモ帳)にユーザー情報を保存 - //「ログイン中」の状態 - session.setAttribute("loginUser", LoginUserForm.convertFrom(loginUser)); - - // 成功したらメニュー画面へ進む - return "menu"; // menu.html を表示 - - } catch (Exception e) { - // 予期せぬエラーが起きたら、セッションを消してエラー画面へ - session.invalidate(); - LOGGER.error("エラーが発生しました!", e); - return "error"; // error.html を表示 + // 入力チェック(メールアドレスやパスワードの形が正しいか) + if (!LoginUserForm.checkParameter(form)) { + // エラーメッセージと、入力されたデータを画面に返す + model.addAttribute("messageError", new MessageForm("メールアドレス、パスワードの入力内容に誤りがあります")); + model.addAttribute("loginInfoForm", form); + return "login"; // login.html を表示 } + + // 認証チェック(IDとパスワードが一致するか) + if (service.canLogin(form) == false) { + // 間違っている場合のメッセージを画面に返す + model.addAttribute("messageError", new MessageForm("IDまたはパスワードが間違っています")); + model.addAttribute("loginInfoForm", form); + return "login"; // login.html を表示 + } + + // ログイン処理の実行 + Integer userId = service.getUserId(form); + // セッションにユーザー情報を保存 + //「ログイン中」の状態 + session.setAttribute("loginUser", userId); + + // 成功したらメニュー画面へ進む + return "menu"; // menu.html を表示 + } -} \ No newline at end of file +} diff --git a/team1/src/main/java/com/example/demo/controller/LogoutController.java b/team1/src/main/java/com/example/demo/controller/LogoutController.java index 5484dc2..03befdd 100644 --- a/team1/src/main/java/com/example/demo/controller/LogoutController.java +++ b/team1/src/main/java/com/example/demo/controller/LogoutController.java @@ -1,64 +1,20 @@ package com.example.demo.controller; -import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; - -import java.util.logging.Level; -import java.util.logging.Logger; - import jakarta.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -import com.example.rhizome.aop.aspect.PermissionCheck; -import com.example.rhizome.aop.aspect.SessionCheck; -import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; -import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; -import com.example.rhizome.app.presentation.form.LoginUserForm; +import org.springframework.web.bind.annotation.PostMapping; @Controller public class LogoutController { - // ログ出力用インスタンス - private final static Logger LOGGER = Logger.getLogger(LogoutController.class.getName()); - // エラーメッセージ用の定数フィールド - private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; - - HttpSession httpSession; - @Autowired - public LogoutController(HttpSession httpSession) { - this.httpSession = httpSession; - } - - @ModelAttribute - public LoginUserForm loginUserForm() { - return new LoginUserForm(); - } - - @PermissionCheck - @SessionCheck - @RequestMapping(value = LOGOUT, method = RequestMethod.POST) - public String doLogout(Model model) { - try { - // セッション情報の破棄 - httpSession.invalidate(); - - // ログイン画面に遷移するための情報を設定 - model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm()); - // login.html に遷移 - return TransitionTargetPageNameKeyword.LOGIN_HTML; - - } catch (Exception e) { - - // エラーログ出力 - LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); - // エラーページに遷移 - return TransitionTargetPageNameKeyword.ERROR_HTML; - } + HttpSession session; + @PostMapping("/doLogout") + public String doLogout() { + //セッションをすべて破棄 + session.invalidate(); + return "login"; } } diff --git a/team1/src/main/java/com/example/demo/form/LoginUserForm.java b/team1/src/main/java/com/example/demo/form/LoginUserForm.java index 280677a..8d6657a 100644 --- a/team1/src/main/java/com/example/demo/form/LoginUserForm.java +++ b/team1/src/main/java/com/example/demo/form/LoginUserForm.java @@ -1,7 +1,5 @@ package com.example.demo.form; -import com.example.rhizome.app.domain.model.LoginUser; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -44,26 +42,26 @@ public class LoginUserForm { * @param loginUser business 層の LoginUser インスタンス * @return クラスから画面用(presentation 層)の LoginUserForm */ - public static LoginUserForm convertFrom(LoginUser loginUser) { + public static LoginUserForm convertFrom(LoginUserForm loginUser) { return new LoginUserForm( loginUser.getIdEmployee(), loginUser.getNmEmployee(), loginUser.getKnEmployee(), loginUser.getMailAddress(), loginUser.getPassword(), - loginUser.getGetFlgadmin() + loginUser.getFlgadmin() ); } - public static LoginUserForm convertTo(LoginUser loginUserForm) { + public static LoginUserForm convertTo(LoginUserForm loginUserForm) { return new LoginUserForm( loginUserForm.getIdEmployee(), loginUserForm.getNmEmployee(), loginUserForm.getKnEmployee(), loginUserForm.getMailAddress(), loginUserForm.getPassword(), - loginUserForm.getGetFlgadmin() + loginUserForm.getFlgadmin() ); } diff --git a/team1/src/main/java/com/example/demo/form/MessageForm.java b/team1/src/main/java/com/example/demo/form/MessageForm.java index d124177..bfcca6e 100644 --- a/team1/src/main/java/com/example/demo/form/MessageForm.java +++ b/team1/src/main/java/com/example/demo/form/MessageForm.java @@ -1,14 +1,15 @@ package com.example.demo.form; -//画面にエラー表示する import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +/** + * 画面に表示するエラーメッセージを管理するクラスです。 + */ @Data @AllArgsConstructor @NoArgsConstructor public class MessageForm { - private String message; + private String message; } - diff --git a/team1/src/main/java/com/example/demo/service/impl/Login.java b/team1/src/main/java/com/example/demo/service/impl/Login.java index bd6c67b..e69de29 100644 --- a/team1/src/main/java/com/example/demo/service/impl/Login.java +++ b/team1/src/main/java/com/example/demo/service/impl/Login.java @@ -1,11 +0,0 @@ -package com.example.demo.service.impl; - -import com.example.demo.form.LoginInfoForm; -import com.example.rhizome.app.domain.model.LoginUser; - -public interface Login { - LoginUser doLogin(LoginInfoForm loginInfo); - - boolean canLogin(LoginInfoForm loginInfo); - -}