Java Framework/Spring Security 4

@AuthenticationPrincipal

@AuthenticationPrincipalSpring Security에서 로그인한 사용자의 정보를 컨트롤러 메서드 파라미터로 간편하게 주입해주는 어노테이션Spring Security의 SecurityContextHolder에 저장된 인증 객체(Authentication)로부터 Principal 정보를 꺼내서, 컨트롤러 파라미터에 주입함내부적으로는 SecurityContextHolder.getContext().getAuthentication().getPrincipal()을 호출하는 것과 같음📦 내부 구조로그인하면 Spring Security가 이 과정을 자동으로 처리한다.사용자가 로그인 → Authentication 객체 생성Authentication.getPrincipal()에 로그인한 사용자 정보(..

[Spring Security] 역할 기반 접근 제어 (RBAC) feat. Role

역할 기반 접근 제어 (RBAC)애플리케이션에서는 사용자마다 다른 권한을 가지는 경우가 많습니다. 예를 들어, 관리자는 시스템을 관리할 수 있지만, 일반 사용자는 자신의 데이터만 접근하도록 제한해야 합니다. 이런 차이를 구현하려면 역할 기반 접근 제어(Role-Based Access Control, RBAC)가 필요합니다.역할(Role) : 사용자의 직무나 그룹을 나타냅니다. ex. ADMIN, USER권한(Authority):  Spring Security가 사용하는 실제 권한 이름으로, 보통 ROLE_ 접두사를 사용합니다. ex. ROLE_ADMIN, ROLE_USERSpring Security 역할 기반 접근 제어package com.example.security.roles;import lombok..

[Spring Security] 보안

1. CSRF (Cross-Site Request Forgery)CSRF는 사용자가 의도하지 않은 요청을 서버로 전송하도록 속이는 공격입니다. 로그인 상태의 사용자를 대상으로 악성 요청을 실행할 수 있어 보안에 매우 위험합니다.ex. 사용자가 은행 웹사이트에 로그인한 상태에서 악성 링크를 클릭하면, 공격자가 사용자 계정으로 돈을 송금하는 요청이 전송될 수 있습니다.1. Spring Security의 CSRF 방지Spring Security를 사용하면 CSRF 보호가 기본으로 활성화됩니다.POST, PUT, DELETE 등의 요청 시, CSRF 토큰을 요구합니다.2. 예시 Submit name="_csrf": 서버에서 지정한 CSRF 토큰의 파라미터 이름value="1a2b3c4d5e6f7g8..

[Spring Security] 스프링 세큐리티 (Spring Security)

Spring SecuritySpring Security는 웹 애플리케이션의 보안을 제공하는 Java 라이브러리입니다.주요 기능은 다음과 같습니다인증 (Authentication) : 사용자가 누구인지 확인합니다.ex. 아이디와 비밀번호를 확인해서 올바른 사용자인지 검증합니다.인가 (Authorization) : 사용자가 특정 기능을 수행할 권한이 있는지 확인합니다.ex. 관리자인지 일반 사용자인지 구분하여 접근할 수 있는 페이지를 제한합니다.CSRF 보호 : 악의적인 요청을 방지합니다.세션 관리 : 사용자의 세션을 안전하게 관리합니다.비밀번호 암호화 : 비밀번호를 안전하게 저장하기 위해 암호화합니다.주요 개념1. 인증 (Authentication)인증은 사용자가 누구인지 확인하는 과정입니다.사용자가 로그..

반응형