의존성 설정
<!-- 시큐리티 태그 라이브러리 -->
<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
시큐리티를 설정한 뒤 서버를 실행하면
이런 화면이 생성 된다.
어떤 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
세션과 같은 역할을 하는 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 |