JSP

admin 권한을 가지고 있는 사람만 상품 등록하기 설정

9400 2023. 1. 18. 12:50
<!-- tomcat-users.xml의
  <user username="chiwon" password="java" roles="admin"/> 만 등록가능 -->
  <%
  //admin권한을 가지고 있는 사용자만 등록 버튼이 보이도록 처리 
   if(request.isUserInRole("admin")){
  %>
<div class="form-group row">
<div class="col-sm-offset-2 col-sm-10">
<a href="addProduct.jsp" class="btn btn-primary">등록</a>
</div>
</div>
<%
   }
%>

 

 

   WEB.XML
   
   <security-constraint>
	 <!-- 상품을 추가할 수 있는 URL인 /addProduct.jsp에 접근하려면 admin이라는 권한이 있어야함
	 admin이라는 권한을 갖고 있는 user는 chiwon이 있음. -->
	     <web-resource-collection>
        <web-resource-name>JSPBook</web-resource-name>
        <url-pattern>/addProduct.jsp</url-pattern>
        <http-method>GET</http-method>
     </web-resource-collection>
     <auth-constraint>
        <description></description>
        <role-name>admin</role-name>
     </auth-constraint>
  </security-constraint>

 

 

 

tomcat-user.xml  
  <user username="chiwon" password="java" roles="admin"/>

 

 

<%@ page language="java" 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"%>
<%
	String username = request.getRemoteUser();
%>
<!-- java세계의 변수 username의 값을 jstl세계의 변수 username에 할당 -->
<c:set var="username" value="<%=username%>" />
	<nav class="navbar navbar-expand navbar-dark bg-dark">
 	<!-- container : 내안에 내용 있다. -->
	<div class="container">
		<div class="navbar-header" style="width:100%">
		<div style="float:left;">
			<a class="navbar-brand" href="welcome.jsp">Home</a>
		</div>
		<div style="float:right;">
			<span class="navbar-brand">
				<!-- 로그인을 했다면 -->
				<c:if test="${fn:length(username)>0}" >
						${username}님 환영합니다!
						<a href="/logout.jsp" class="btn btn-sm btn-success pull-right">logout</a>
				</c:if>
				<!-- 로그인을 안했다면 -->
				<c:if test="${fn:length(username)==0}" >
					<a href="addProduct.jsp" >로그인을 해주세요</a>
				</c:if>				
			</span>
		</div>
		</div>
	</div>
</nav>