๋ฐ์ํ
์คํ๋ง์ผ๋ก ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ผ๊ณ ์ต์ด ๋ก๊ทธ์ธ ์์ url์ ์๋์ผ๋ก jsessionid์ด ๋ถ๋๊ฒ์ ํ์ธํ๋ค
์๋ฒ๋ /login์์ ์๋ก์ด ์ธ์ ์ ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํด์ค๋ค
์ด๋ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค ์ง์์ฌ๋ถ๋ฅผ ๋ชจ๋ฅด๊ธฐ๋๋ฌธ์ URL๊ณผ ์ฟ ํค ๋ ๊ณณ์ jsessionid์ ๋ฐํํด์ค๋ค.
ํด๋ผ์ด์ธํธ๋ ๋ค์ ์์ฒญ์์ ์ฟ ํค๋ก jsession์ ๋ณด๋ผ ์ ์๋ค๋ฉด url์ jsession์ ์๋ตํ๊ณ
์ฟ ํค๋ก jsession์ ๋ณด๋ผ ์ ์๋ค๋ฉด url์ jsession์ ๋ถ์ด๊ฒ๋๋ค.
@PostMapping("/login")
public String loginOk(@Validated @ModelAttribute Member member, BindingResult bindingResult, HttpServletRequest request, @RequestParam(defaultValue = "/") String redirectURL){
BindingResult newBindingResult = memberService.loginValidCheck(member, bindingResult);
if(newBindingResult!=null && newBindingResult.hasErrors()){
return "member/login";
}else{
HttpSession session = request.getSession(); // ์ธ์
์ด ์์ผ๋ฉด ์๋ ์ธ์
๋ฐํ, ์์ผ๋ฉด ์ ๊ท ์ธ์
์ ์์ฑํ์ฌ ๋ฐํ
Member loginMember = memberRepository.findByEmail(member.getEmail()).orElse(null);
session.setAttribute(SessionConstants.LOGIN_MEMBER, loginMember); // ์ธ์
์ ๋ก๊ทธ์ธ ํ์ ์ ๋ณด ๋ณด๊ด
return "redirect:"+redirectURL;
}
}
@Controller
public class HomeController {
@GetMapping("/")
public String index(@Login Member loginMember, Model model){
//์ธ์
์ ํ์๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ํ์ผ๋ก ์ด๋
if (loginMember == null) {
return "index";
}
// ์ธ์
์ด ์์ผ๋ฉด model์ ๋ด์ ํ์ผ๋ก ์ด๋
model.addAttribute("loginMember", loginMember);
return "index";
}
}
application.yml์ ์๋ ์ฝ๋๋ฅผ ์์ฑํด์ค๋ค
server:
session:
tracking-modes: cookie #์ต์ด์ ์ ์ url์ jsession์๋ถ๊ฒ
ํด๊ฒฐ!
๋ฐ์ํ
'๐ฟ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Security] ๋์๋ฐฉ๋ฒ ๋ฐ Form, OAuth ๋ก๊ทธ์ธํ๊ธฐ (Feat.Thymeleaf ํ์๋ฆฌํ) (8) | 2022.02.01 |
---|---|
Spring + MariaDB + Mybatis ์ฐ๋ ๋ฐ ์คํํด๋ณด๊ธฐ (0) | 2021.12.22 |
Cookie์ Session, ๊ทธ๋ฆฌ๊ณ Token (0) | 2021.12.09 |
Spring Validation ์ ๋ฆฌ (0) | 2021.12.08 |
์คํ๋งMVC ๊ธฐ๋ณธ๊ธฐ๋ฅ (0) | 2021.12.03 |