본문 바로가기

Category/SpringBoot26

스프링 시큐리티 @PreAuthorize("isAuthenticated()") @PreAuthorize("조건")는 **스프링 시큐리티(Spring Security)**에서 제공하는 메서드 보안 애너테이션입니다. 이 애너테이션은 메서드가 실행되기 전에 특정 보안 조건을 평가하여, 조건이 참일 때만 메서드를 실행하게 합니다. isAuthenticated()는 사용자가 인증된 상태인지를 확인하는 스프링 시큐리티의 표현식입니다. 즉, @PreAuthorize("isAuthenticated()")은 로그인한 사용자만 해당 메서드를 사용할 수 있도록 제한합니다.동작 원리@PreAuthorize는 메서드가 실행되기 전에 특정 권한이나 조건을 체크하는 역할을 합니다."isAuthenticated()"는 사용자가 인증된 상태(즉, 로그인한 상태)임을 확인하는 조건식입니다.따라서 @PreAutho.. 2024. 9. 5.
스프링 시큐리티 Principal **Principal**은 **스프링 시큐리티(Spring Security)**에서 현재 인증된 사용자의 정보를 담고 있는 객체입니다. 사용자가 애플리케이션에 로그인을 성공하면 스프링 시큐리티는 사용자의 정보를 Principal 객체에 저장하고, 이 객체를 통해 애플리케이션의 다른 부분에서 사용자 정보를 쉽게 접근할 수 있게 합니다.Principal 인터페이스는 자바 표준이기 때문에 스프링뿐만 아니라 다른 프레임워크에서도 사용할 수 있습니다. 스프링 시큐리티는 이 표준을 활용하여 사용자 정보 접근을 제공하며, 이를 통해 사용자의 ID, 이름, 권한 등의 정보를 얻을 수 있습니다.스프링 시큐리티에서 Principal의 역할로그인된 사용자 정보 확인: 로그인된 사용자에 대한 정보를 제공.인증된 사용자와의 상.. 2024. 9. 5.
타임리프 확장 기능 sec:authorize sec:authorize는 **스프링 시큐리티(Spring Security)**와 **타임리프(Thymeleaf)**를 함께 사용할 때 사용자의 인증 및 권한 상태를 기반으로 특정 HTML 요소를 조건부로 출력할 수 있게 해주는 타임리프 확장 기능입니다.이 속성은 사용자의 로그인 여부나 권한에 따라 해당 HTML 요소를 렌더링할지 여부를 제어합니다. sec:authorize는 스프링 시큐리티의 보안 기능을 HTML 템플릿에서 쉽게 활용할 수 있도록 도와줍니다.주요 기능sec:authorize="isAuthenticated()": 사용자가 로그인되어 있을 때만 해당 HTML 요소를 출력합니다.sec:authorize="isAnonymous()": 사용자가 **로그인하지 않은 상태(익명)**일 때만 해당 H.. 2024. 9. 5.
스프링 시큐리티 .invalidateHttpSession(true) .invalidateHttpSession(true)는 스프링 시큐리티에서 로그아웃 시 사용자의 **세션(Session)**을 무효화하는 기능을 의미합니다. 세션 무효화는 사용자가 로그인했을 때 서버에 생성된 세션 객체를 삭제하는 작업입니다.세션(Session)이란?세션은 웹 애플리케이션에서 서버가 사용자의 상태를 유지하기 위해 사용하는 저장 공간입니다. 사용자가 로그인하면 서버는 해당 사용자의 정보를 세션에 저장해 두고, 사용자가 페이지를 이동하더라도 로그인 상태를 유지할 수 있게 됩니다. 세션은 사용자가 서버에 연결되어 있는 동안 유지됩니다.세션 무효화의 의미invalidateHttpSession(true)는 로그아웃할 때 사용자의 세션을 삭제하여, 로그아웃 후에도 남아있는 세션 정보를 모두 제거합니다.. 2024. 9. 5.
스프링 시큐리티 @PostMapping // ... 생략 ...public class UserController { // ... 생략 ... @GetMapping("/login") public String login() { return "login_form"; }}실제 로그인을 진행하는 @PostMapping 방식의 메서드는 스프링 시큐리티가 대신 처리하기 때문에 직접 코드를 작성하여 구현할 필요가 없습니다. 2024. 9. 5.
스프링 시큐리티(Spring Security)란? 스프링 시큐리티(Spring Security)는 스프링 기반 웹 애플리케이션의 인증과 권한을 담당하는 스프링의 하위 프레임워크입니다. 인증(authenticate)로그인과 같은 사용자의 신원을 확인하는 프로세스입니다.권한(authorize) 인증된 사용자가 어떤 일을 할 수 있는지(어떤 접근 권한이 있는지) 관리하는 것을 의미합니다.스프링 시큐리티 설치( build.gradle )implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'thymeleaf-extras-springsecurity6 패키지는 타임리프 .. 2024. 9. 4.