JSP

[JSP] 특정 회원에게 권한을 부여하고 싶을 경우 해결

예요 2021. 6. 24. 19:39

사이트를 운영할 때 관리자, 기업회원, 개인회원 등등으로 회원의 유형이 나뉘게 된다.

이에 따라서 서비스를 이용할 때 회원에 따라 권한을 달리 해야할 필요가 생긴다.

 

위와 같은 문제는 로그인을 할 때 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>

 

서버를 실행하고 사이트에 접속하여 회원 유형 별로 로그인을 하고 확인을 해보면

관리자로 로그인을 했을 경우에는 게시글의 등록 버튼이 보이고 그 외의 경우에는 보이지 않게 된다!

728x90