MemberController.java
package org.edwith.webbe.securityexam.controller;
import java.security.Principal;
import org.edwith.webbe.securityexam.dto.Member;
import org.edwith.webbe.securityexam.service.MemberService;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping(path = "/members")
public class MemberController {
private final MemberService memberService;
private final PasswordEncoder passwordEncoder;
public MemberController(MemberService memberService, PasswordEncoder passwordEncoder){
this.memberService = memberService;
this.passwordEncoder = passwordEncoder;
}
@GetMapping("/loginform")
public String loginform(){
return "members/loginform";
}
@RequestMapping("/loginerror")
public String loginerror(@RequestParam("login_error")String loginError){
return "members/loginerror";
}
@GetMapping("/joinform")
public String joinform(){
return "members/joinform";
}
@PostMapping("/join")
public String join(@ModelAttribute Member member){
member.setPassword(passwordEncoder.encode(member.getPassword()));
memberService.addMember(member, false);
return "redirect:/members/welcome";
}
@GetMapping("/welcome")
public String welcome(){
return "members/welcome";
}
@GetMapping("/memberinfo")
public String memberInfo(Principal principal, ModelMap modelMap){
String loginId = principal.getName();
Member member = memberService.getMemberByEmail(loginId);
modelMap.addAttribute("member", member);
return "members/memberinfo";
}
}
memberinfo.jsp
<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<title>회원 가입폼 </title>
</head>
<body>
<div>
<div>
<h1>회원정보</h1>
<p>로그인한 회원 정보를 표기합니다.</p>
</div>
<div>
<label>id</label>
<p>${member.id}</p>
</div>
<div>
<label>이름</label>
<p>${member.name}</p>
</div>
<div>
<label>암호</label>
<p>${member.password}</p>
</div>
<div>
<label>등록일</label>
<p>${member.createDate}</p>
</div>
<div>
<label>수정일</label>
<p>${member.modifyDate}</p>
</div>
</div>
</body>
</html>
결과