현재는 로그인을 하지 않아도 정보수정, 로그아웃 부분이 나오는걸 로그인을 했을경우 나오도록 변경
로그인 유저 정보가 들어있는 객체를 주입받아 인터셉터의 생성자에 주입
(메뉴 상단부분은 모든 요청시 필요하므로 모든 요청시 로그인상태를 처리할 수 있다)
@Resource(name = "loginUserBean")
private LoginUserBean loginUserBean;
//loginUserBean 추가
MenuInterceptor menuInterceptor = new MenuInterceptor(menuService, loginUserBean);
private LoginUserBean loginUserBean;
public MenuInterceptor(MenuService menuService, LoginUserBean loginUserBean) {
this.menuService = menuService;
this.loginUserBean = loginUserBean;
}
//생략
request.setAttribute("loginUserBean", loginUserBean); //추가
로그인상태 -> 정보수정, 로그아웃
로그아웃상태 -> 로그인, 회원가입
<ul class="navbar-nav ml-auto">
<c:choose>
<c:when test="${loginUserBean.userLogin == true}">
<li class="nav-item">
<a href="${root }user/modify" class="nav-link">정보수정</a>
</li>
<li class="nav-item">
<a href="${root }user/logout" class="nav-link">로그아웃</a>
</li>
</c:when>
<c:otherwise>
<li class="nav-item">
<a href="${root}user/login" class="nav-link">로그인</a>
</li>
<li class="nav-item">
<a href="${root }user/join" class="nav-link">회원가입</a>
</li>
</c:otherwise>
</c:choose>
</ul>
@GetMapping("/logout")
public String logout() {
loginUserBean.setUserLogin(false);
return "user/logout";
}