Spring&SpringBoot/SpringSecurity
-
SpringSecurity 06Spring&SpringBoot/SpringSecurity 2025. 9. 25. 13:28
인가 아키텍처인가 - Authorization권한 부여는 특정 자원에 접근할 수 있는 사람을 결정하는 것GrantedAuthority 클래스를 통해 권한 목록을 관리하고 있으며 Authentication 객체와 연결한다 GrantedAuthorityAythentication에 GrantedAuthority 권한 목록을 저장하며 이를 통해 인증 주체에게 부여된 권한을 사용GrantedAuthority는 AuthenticationManager에 의해 Authentication 객체에 삽입하며 인가 결정을 내릴 때 AuthenticationManager를 사용해 인증 주체로부터 GrantedAuthority 객체를 읽어 들여 처리 기본적으로 역할 기반의 인가 규칙은 역할 앞에 ROLE_를 접두사로 사용한다 ..
-
SpringSecurity 05Spring&SpringBoot/SpringSecurity 2025. 9. 24. 13:03
인가 프로세스 요청 기반 권한 부여 - HttpSecurity.authorizeHttpRequests()Spring Security는 요청 기반 권한 부여와 메서드 기반 권한 부여를 통해 자원에 대한 심층적 방어 제공요청 기반 권한 부여는 클라이언트의 요청(HttpServletRequest)에 대한 권한 부여를 모델링하는 것이며 HttpSecurity 인스턴스를 사용하여 권한 규칙을 선언 authorizeHttpRequests() APIrequestMatchers()Http 요청의 URL 패턴, HTTP 메서드, 요청 파라미터 등을 기반으로 어떤 요청에 대해서는 특정 보안 설정을 적용하고 다른 요청에 대해서는 적용하지 않도록 제어예) 특정 API 경로에만 CSRF 보호 적용하거나 특정 경로에 대해 이..
-
SpringSecurity 04Spring&SpringBoot/SpringSecurity 2025. 9. 18. 14:34
예외처리예외처리 - exceptionHandling()예외 처리는 필터 체인 내에서 발생하는 예외를 의미하며 인증예외/인가예외가 있다예외를 처리하는 필터는 ExceptionTranslationFilter가 사용되며 사용자의 인증 및 인가 상태에 따라 로그인 재시도, 401, 403 코드 등으로 응답 [예외처리 유형]AuthenticationExcepionSecurityContext 인증 정보 삭제AuthenticationEntryPoint 호출 - 인증 시도 화면으로 이동인증 프로세스의 요청 정보를 저장하고 검색AccessDeniedExceptionAccessDeniedException 감지되면 필터는 사용자가 익명 사용자인지 여부 판단하고 익명 사용자인 경우 인증예외처리가 실행되고 익명 사용자가 아닌..
-
SpringSecurity 03Spring&SpringBoot/SpringSecurity 2025. 9. 17. 18:37
인증 상태 영속성 1. SecurityContextRepository & SecurityContextHolderFilter SecurityContextRepository사용자가 인증한 후 요청에 대해 계속 사용자의 인증을 유지하기 위해 사용되는 클래스인증 정보와 권한이 SecurityContext에 저장되고 HttpSession을 통해 요청 간 영속이 이루어지는 방식HttpSessionSecurityContextRepository : 요청 간에 HttpSession에 보안 컨텍스트를 저장 / 영속성 유지RequestAttributeSecurityContextRepository : ServletRequest 에 보안 컨텍스트를 저장 / 영속성 유지 xNullSecurityContextRepository :..
-
SpringSecurity 02Spring&SpringBoot/SpringSecurity 2025. 9. 16. 15:51
Ahthenticaion SecurityContext / SecurityContextHoldersecurityContextAuthentication 저장 : 현재 인증된 사용자의 Authentication 객체 저장ThreadLocal 저장애플리케이션 전반에 걸친 접근성 SecurityContextHolderSecurityContext 저장 : 현재 인증된 사용자의 Authentication 객체를 담고 있는 SecurityContext 객체 저장SecurityContextHolderStragey 인터페이스 사용하여 다양한 전략 패턴 사용기본 전략 : MODE_THREADLOCAL전략모드 직접 지정 : SecurityContextHolder.setStrategyName(String) Secur..
-
SpringSecurity 01Spring&SpringBoot/SpringSecurity 2025. 9. 15. 17:12
SecurityFilterChain 타입 빈을 정의한 후 인증 API 및 인가 API 설정인증 API : 사용자나 시스템이 자신을 증명하는 과정"너 누구야?"ID+비밀번호, 토큰(JWT, OAuth2 Access Token) 등인가 API : 인증된 사용자가 요청한 리소스나 기능에 접근 권한이 있는지 검사"너 뭐 할 수 있어?"권한(ROLE), 정책에 따라 접근 허용/거부 @RestControllerpublic class IndexController { @GetMapping("/") public String index() { return "index"; }}@EnableWebSecurity@Configurationpublic class SecurityConfig { @..