의존성 설정
<!-- 시큐리티 태그 라이브러리 -->
<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으로 커스터마이징 하여 사용하면 된다.
'SpringBoot' 카테고리의 다른 글
[SpringBoot] 정적 콘텐츠 (static) (0) | 2021.01.13 |
---|---|
[SpringBoot] 스프링 부트 스타터에서 프로젝트 생성하기 (0) | 2020.12.29 |
Springboot - 전통적인 방식의 로그인 (0) | 2020.12.25 |
Springboot -JSTL (의존성 설정) (0) | 2020.12.25 |
SpringBoot - JPA란?(의존성 설정, @어노테이션) (0) | 2020.12.23 |