AngelPlayer`s Diary

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

선언적 시큐리티와 프로그래밍적 시큐리티로 구성

 

 

- 웹 서버에 역할과 사용자 구성하기

톰캣 설치 루트\conf\tomcat-users.xml

-> 해당 파일의 가장 아래에 있는 주석을 날려줘야 함 

 

기본 역할과 사용자

<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>

 

 

- 선언적 시큐리티 : 코드 작성 없이 web.xml 파일에 보안 구성을 작성하여 사용자의 인증을 수행하는 방식

tomcat-users.xml에 등록된 역할과 사용자만 사용 가능

 

- 프로그래밍적 시큐리티 : request 내장 객체의 메소드를 통해 사용자의 권한 부여를 처리

 

 

web.xml 예시

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
	<!-- 웹 어플리케이션에 사용하는 역할을 나열 -->
	<security-role>
		<role-name>role1</role-name>
	</security-role>

	<!-- 시큐리티 제약 사항 설정 -->
	<security-constraint>
		<web-resource-collection> <!-- 웹에 대한 접근 제한을 설정 하는 요소-->
			<web-resource-name>JSPBook</web-resource-name> <!-- 웹 자원의 이름 설정 -->
			<url-pattern>/ch10/security02.jsp</url-pattern> <!-- 접근을 제한할 url -->
			<http-method>GET</http-method> <!-- http 메소드 설정 | GET or POST -->
		</web-resource-collection>
		
		<auth-constraint> <!-- 권한이 부여된 사용자만 웹에 접근 할 수 있도록 설정하는 요소 -->
			<description></description> <!-- 설명 -->
			<role-name>role1</role-name> <!-- 역할 이름 | 무조건 tomcat-users에 위치한 이름과 동일해야 함 -->
		</auth-constraint>
	</security-constraint>

	<!-- 시큐리티 인증 설정 -->
	<login-config>
		<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>

공유하기

facebook twitter kakaoTalk kakaostory naver band