pom.xml
의존성 주입
<!-- 시큐리티 태그 라이브러리 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
UserApiController.java
전통적인 방식의 로그인 메서드를 주석처리한다.
/*
// 전통적인 방식의 로그인 방법
@PostMapping("/api/user/login")
public ResponseDto<Integer> login(@RequestBody User user, HttpSession session) {
System.out.println("UserApiController : login 호출됨");
User principal = userService.로그인(user); // principal (접근주체)
System.out.println(principal);
if(principal != null) {
session.setAttribute("principal", principal);
}
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);
}
*/
header.jsp
태그 라이브러리 추가
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<sec:authorize access="isAuthenticated()">
<sec:authentication property="principal" var="principal"/>
</sec:authorize>
<!-- JSTL 태그 라이브러리 -->
<c:choose>
<c:when test="${ empty principal }"> <!-- 로그인이 안돼있을때 -->
isAuthenticated() : 인증여부 확인
principal : 로그인 정보 가져오기
테스트
http://localhost:8001/ 를 요청했는데 자동으로 http://localhost:8001/login으로 url이 넘어간다
--> springSecurity 를 사용하게되면 이 프로젝트의 모든 접근이 막히게 된다.
아이디 비밀번호를 입력해야 접근 가능하다.
아이디는 user
비밀번호는 sts 콘솔창에서 확인할 수 있다.
로그인 해보자
로그아웃을 하는 방법은 http://localhost:8001/logout 로 url 요청하면 된다.
이러한 로그인, 로그아웃 페이지는 SpringSecurity가 기본적으로 제공하는 페이지다.
다음글에서는 이 페이지를 내가 만든 페이지로 커스터마이징 해보자.
참고 유튜브 (메타코딩님 강의)
https://youtu.be/zi1l3lYJRL4?si=fK2qlkU52DKKDiAc
참고 문서
https://www.tutorialspoint.com/spring_security/spring_security_with_taglib.htm