본문 바로가기
Spring/Spring 기초

Security 접근거부 처리(시큐리티 제공)

by 미눅스[멘토] 2023. 8. 17.
728x90

 

 

security-context.xml에 아래 코드를 넣는다

 

      <!-- 
      1. 접근 거부 처리(시큐리티  제공)
      1) 선제조건 : 계정 / 비밀번호가 맞아야 함 => 로그인 가능
      2) 들어가려는 URL에 대한 권한이 없어야 함
      	/notice/register 요청에 member / java로 로그인한 경우[ROLE_MEMBER]
       -->
      <security:access-denied-handler error-page="/security/accessError"/>

 

 

 

 

 

Controller에 접근 거부 처리자의 URI를 지정

	//접근 거부 처리자의 URI를 지정
	@GetMapping("/security/accessError")
	public String accessError(Authentication auth, Model model) {
		//auth : 로그인(이 시도된) 정보를 담고 있음. auth.getName(): 계정아이디
		log.info("access Denied : " + auth.getName());
		
		model.addAttribute("msg", "Access Denied");
		
		//forwarding
		return "security/accessError";
	}

 

 

 

 

error-page에 맞는 url주소에 

패키지 및 jsp생성

 

 

 

jsp 코드작성

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<section class="content">
	<div class="error-page">
		<h2 class="headline text-danger">Access Denied Page</h2>
		<div class="error-content">
			<h3>
				<i class="fas fa-exclamation-triangle text-danger"></i> Oops!
				${msg}
			</h3>
			<p>
				${SPRING_SECURITY_403_EXCEPTION.getMessage()}
				Meanwhile, you may <a
					href="/">return to dashboard</a> or try using the
				search form.
			</p>
		</div>
	</div>
</section>