티스토리 뷰
3. 프로그래밍적 시큐리티 처리
프로그래밍적 시큐리티는 웹 애플리케이션의 보안을 위해 코드를 작성하여 사용자의 권한 부여를 처리하는 방식이다.
request 내장 객체의 메소드를 사용하여 사용자를 승인하는 방법이다.
* 보안관련 request 내장 객체의 메소드
메소드 | 형식 | 설명 |
getRemoteuser() | String | 사용자의 인증 상태를 반환한다. |
getAuthType() | String | 서블릿을 보호하는데 사용되는 인증 방식의 이름을 반환한다. |
isUserInRole(java.lang.String role) | boolean | 현재 인증된 사용자에게 설정된 역할이 있는지 확인한다. 설정된 경우 true를 반환하고 그렇지 않은 경우 false를 반환한다. |
getProtocol() | String | 웹 브라우저의 요청 프로토콜을 가져온다. |
isSecure() | boolean | 웹 브라우저에서 https 요청으로 request가 들어왔는지 확인한다. 웹 브라우저에서 https로 접근하면 true를 반환하고, http로 접근하면 false를 반환한다. |
getUserPrinciple() | Principle | 현재 인증한 사용자의 이름을 포함하여 java.security.Principle 객체를 반환한다. |
request 내장 객체의 isUserInRole() 메소드 사용 예시
<% if (request.isUserInRole("admin")) { %>\
<a href="admin/addproduct.jsp">상품 등록</a>
<a href="admin/member.jsp">회원 관리</a>
<% } %>
프로그래밍 방식으로 보안 처리하기
예제 10-3
WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<security-role>
<role-name>manager</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>test</web-resource-name>
<url-pattern>/security02.jsp</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description></description>
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_failed.jsp</form-error-page>
</form-login-config>
</login-config>
</web-app>
security02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p> 사용자명 : <%=request.getRemoteUser() %>
<p> 인증방법 : <%=request.getAuthType() %>
<p> 인증한 사용자명이 역할명 "tomcat"에 속하는 사용자인가요?
<%=request.isUserInRole("tomcat") %>
<p> 인증한 사용자명이 역할명 "role1"에 속하는 사용자인가요?
<%=request.isUserInRole("manager") %>
</body>
</html>
'코딩 > JSP' 카테고리의 다른 글
[10주 4일차] 필터 (0) | 2023.12.14 |
---|---|
[10주 3일차] 예외 처리 (0) | 2023.12.13 |
웹 쇼핑몰 : 예외 처리 페이지 만들기 (0) | 2023.12.13 |
웹쇼핑몰:상품 등록 페이지의 보안 처리하기 (0) | 2023.12.13 |
[10주 2일차] 시큐리티 (1) (1) | 2023.12.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday