의존성 설정

	<!-- 시큐리티 태그 라이브러리 -->
		
		<dependency>
		  <groupId>org.springframework.security</groupId>
		  <artifactId>spring-security-taglibs</artifactId>
		</dependency>
        
        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
        
        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

 

시큐리티 taglib 선언

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

 

security taglib

www.baeldung.com/spring-security-taglibs

 

Introduction to Spring Security Taglibs | Baeldung

Learn how to use Spring Security's tag library in your JSPs for finer-grained control of your views.

www.baeldung.com

 

 

시큐리티를 설정한 뒤 서버를 실행하면

이런 화면이 생성 된다.

 

어떤 url을 지정해도 스프링 시큐리티 라이브러리가 

서버를 가로채서

/login 으로 이동시킨다.

 

 

이때 아이디는 user를 입력하고

 

비밀번호는 

cosole에 있는 것을 입력한다.

 

 

이때 위에서 선언한 taglib와 함께

<sec:authorize access="isAuthenticated()">
	
	<script>
		alert("시큐리티 로그인");
	</script>
	<sec:authentication property="principal" var="principal" />
	
	
</sec:authorize>

속성을 지정한다.

 

isAuthenticated() = 시큐리티 로그인이 되었을때

 

principal = 시큐리티가 설정된 사용자에 대한  접근 권한

 

 

 

문서!

 

docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html

 

15. Expression-Based Access Control

There are some built-in expressions which are specific to method security, which we have already seen in use above. The filterTarget and returnValue values are simple enough, but the use of the hasPermission() expression warrants a closer look. The Permiss

docs.spring.io

 

 

 

세션과 같은 역할을 하는 principal 사용

 

<c:choose>
		<c:when test="${empty principal}">
			<ul class="navbar-nav">
				<li class="nav-item">
               <a class="nav-link" href="/loginform">로그인</a></li>
				<li class="nav-item">
                <a class="nav-link"	href="/joinform">회원가입</a></li>
					</ul>
		</c:when>
		<c:otherwise>

			<ul class="navbar-nav">
				<li class="nav-item">
                <a class="nav-link" href="/board/form">글쓰기</a></li>
				<li class="nav-item">
                <a class="nav-link"	href="/user/form">회원정보</a></li>
				<li class="nav-item">
                <a class="nav-link"	href="/logout">로그아웃</a></li>
			</ul>
		</c:otherwise>

</c:choose>

 

 

시큐리티의 디폴트 url은  로그인 : /login , 로그아웃 : /logout

 

 

로그아웃:

 

기본 시큐리티 로그인 , 로그아웃에

사용자가 직접 만든 로그인, 로그아웃 form으로 커스터마이징 하여 사용하면 된다.

 

 

+ Recent posts