반응형

 

연습 문제 01

 

시큐리티란 무엇인가?

 

더보기

시큐리티

: 허가된 사용자만이 특정 웹 페이지에 접근할 수 있도록 제한하는 보안 기능

 

 

 

연습 문제 02

 

시큐리티의 두 가지 처리 기법에 대해 간단히 설명하시오.

 

더보기

1. 선언적 시큐리티

: web.xml 파일에 보안 구성을 작성하여 사용자 인증을 수행하는 방식

 

 

2. 프로그래밍적 시큐리티

: request 내장 객체의 메소드를 통해 사용자의 권한 부여를 처리하는 방식

 

 

 

연습 문제 03

 

FORM 기반 인증 처리 기법으로 로그인 페이지를 작성하는 방법을 설명하시오.

 

더보기
login-config>
	<auth-method>FORM</auth-method>
</login-config>

 

+ form 태그에 action 속성값, 아이디와 비밀번호 input 태그의 name 속성을 각각 j_security_check, j_username, j_password로 설정

 

 

 

연습 문제 04

 

FORM 기반 인증 처리 기법을 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들고 실행 결과를 확인하시오.

 

 

더보기

tomcat-users.xml (아래 코드 추가)

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="java" roles="tomcat"/>
  <user username="both" password="java" roles="tomcat,role1"/>
  <user username="role1" password="java" roles="role1"/>
  <user username="admin" password="admin1234" roles="role1"/>

 

 

 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <!-- 시큐리티 역할(Role) 설정 -->
  <security-role>
  	<description></description>
  	<role-name>role1</role-name> <!-- 사용시 톰캣에 존재해야함 -->
  </security-role>
  
  <!-- 2. 시큐리티 제약 사항 설정 -->
  <security-constraint>
  	<!-- 웹 자원의 이름 설정(생략가능) -->
  	<display-name>Exercise Security</display-name>
  	<!-- 웹 자원에 대한 약속 목록 -->
  	<web-resource-collection>
  		<!-- 프로젝트명 -->
  		<web-resource-name>Exercise</web-resource-name>
  		<url-pattern>/ch10/success.jsp</url-pattern>
  		<!-- HTTP 요청방식 -->
  		<http-method>GET</http-method>
  	</web-resource-collection>
  	
  	<auth-constraint>
		<!-- 권한 부여 제약 사항에 대한 설명 기술 -->
		<description></description>
		<!-- 권한이 부여된 사용자 이름 설정 -->
        <role-name>role1</role-name>
  	</auth-constraint>
  </security-constraint>
  <login-config>
	<!-- FORM 인증 처리 기법 설정 -->
	<auth-method>FORM</auth-method>
	<!-- 인증 처리를 위한 로그인 및 오류 페이지 설정 -->
	<form-login-config>
		<!-- 인증(로그인) 처리를 위한 로그인 페이지 설정 -->
		<form-login-page>/ch10/login.jsp</form-login-page>
		<!-- 인증(로그인) 실패시 오류페이지 설정-->
		<form-error-page>/ch10/login_failed.jsp</form-error-page>
	</form-login-config>
  </login-config>
</web-app>

 

 

security.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
	<p><a href="success.jsp">로그인</a></p>
</body>
</html>

 

 

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
	<form action="j_security_check">
		<p>사용자명 : <input type="text" id="inputUsername" name="j_username" /></p>
		<p>비밀번호 : <input type="text" id="inputPassword" name="j_password" /></p>
		<p><input type="submit" name="id" /></p>
	</form>
</body>
</html>

 

 

login_failed.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
	<p>인증을 실패했습니다.</p>
</body>
</html>

 

 

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
	<p>사용자명<%=request.getRemoteUser()%>인증을 성공했습니다.</p>
</body>
</html>

 

결과 화면1

 

결과 화면2

 

결과 화면3

 

결과 화면4

 

 

 

 

연습 문제 05

 

다음 조건에 맞게 도서 웹 쇼핑몰을 위한 웹 애플리케이션을 만들고 실행 결과를 확인하시오.

 

 

 

 

반응형