[영상후기] [10분 테코톡] 🐻작은곰의 Spring Security

박철현·2023년 4월 30일
0

영상후기

목록 보기
115/160

movie

  • 스프링 시큐리티 : 인증과 인가를 제공하는 프레임워크

  • 특징 : 웹기반 인증, 인가를 쉽고 편하게 구현하기 위함
    1) 서블릿 API 통합
    2) 스프링 웹 MVC와의 선택적 통합
    3) 인증과 권한 부여를 모두 포괄적이고 확장 가능한 지원
    4) 세션 고정, clickjacking, 사이트 간 요청 위조 등과 같은 공격으로부터 보호
    -> 세션 고정 : 사용자 로그인 시 항상 일정하게 고정된 세션 ID값을 사용하는 취약점
    -> clickjacking : 사용자가 클릭하고 있다고 인지하는 것과 다른 어떤 것을 클릭하게 속이는 악의적인 기법
    -> 사이트간 요청 위조 : CSRF, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 기법

  • 스프링 시큐리티 요청 처리 : 서블릿 필터체인을 자동으로 거치게하고 요청을 처리함

  • 주요 필터
    1) SecurityContextPersistenceFilter : SecurityContextRepository를 통해 SecurityContext를 Load/Save 처리
    2) LogoutFilter : 로그아웃 URL(기본값 : /logout)로의 요청을 감시하여 해당 사용자를 로그아웃 시킴
    3) UsernamePasswordAuthenticationFilter : ID/PW 기반 Form 인증 요청 URL(기본값: /login)을 감시하여 사용자를 인증
    4) ExceptionTransiationFilter : 요청을 처리하는 중에 발생할 수 있는 예외를 위임하거나 전달
    5) FilterSecurityInterceptor : 접근 권한 확인을 위해 요청을 AccessDecisionManager로 위임, 이 필터가 실행되는 시점에는 사용자가 인증됐다고 판단

  • 스프링시큐리티 3.2부터는 XML 설정을 하지 않고 어노테이션을 활용하여 자바 기반 설정 가능

@EnableWebSecurity
@EnableGlobalMethodSecurity {
// 주석에 있는 어노테이션을 컨트롤러에서 사용 가능하게 해주는 옵션
// 사용자 인증을 설정해주는 어노테이션들임
	securedEnabled = true,   // @Secured 사용 가능
    jsr250Enabled = true,	// @RolesAllowed 사용 가능
    prePostEnabled = true	// @PreAuthorize, @PostAuthorize 사용 가능(권한 체크)
}
public class WebSecurityConfig extends WebSecurityConfiguerAdapter {
}

스프링 시큐리티 3.2 버전 부터는 @EnableWebSecurity만 사용해도 구현 가능(WebSecurityConfiguerAdapter 상속 필요 없음, 영상에서는 필요하다 하여 적었음)
단 @EnableWebSecurity 어노테이션을 사용하면서도 필요한 커스텀 설정이 있을 경우, WebSecurityConfigurer 인터페이스를 구현하고 configure 메소드를 오버라이딩하여 원하는 설정을 추가가능
-> GPT 답변

  • 상세 설정 예시가 있으니, 프로젝트 시 확인하고 적용하면 좋을 것 같음
profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보