[JSP] 특정 회원에게 권한을 부여하고 싶을 경우 해결
사이트를 운영할 때 관리자, 기업회원, 개인회원 등등으로 회원의 유형이 나뉘게 된다.
이에 따라서 서비스를 이용할 때 회원에 따라 권한을 달리 해야할 필요가 생긴다.
위와 같은 문제는 로그인을 할 때 id 와 동시에 type(회원 유형)을 session 값으로 내보내는 방법으로 구현 가능하다.
아래 코드는 로그인을 수행하는 LoginController.java 이다.
볼드체로 쓰여진 부분이 id, type 의 session 값을 내보내주는 코드이다.
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String id = req.getParameter("id");
String password = req.getParameter("password");
MemberService service = new MemberService();
int t = service.checkLogin(id, password);// 로그인을 수행하고 type 값을 반환받는다.
inttype = -1;
if(t == 0 || t == 1 || t == 2) { // type 값에 따라서 회원 유형을 분류해주고 id, type 의 session 값을 내보낸다.
HttpSession session = req.getSession();
session.setAttribute("id", id);
type = t;
session.setAttribute("type", type);
}
PrintWriter out = res.getWriter();
out.println(t);
}
아래는 게시글의 리스트를 보여주는 jsp 코드의 일부인데 게시글을 등록할 수 있는 권한을 관리자(type = 0)에게만 부여해주는 코드이다.
<c:choose>
<c:when test="${sessionScope.type==0}">
<a class="register" href="reg" type="button">공지사항 등록</a>
</c:when>
</c:choose>
서버를 실행하고 사이트에 접속하여 회원 유형 별로 로그인을 하고 확인을 해보면
관리자로 로그인을 했을 경우에는 게시글의 등록 버튼이 보이고 그 외의 경우에는 보이지 않게 된다!