TIL

2021.10.12 기록장

Gisungcu 2021. 10. 12. 21:36

ToDo

  • 스프링 시큐리티
  •  

Done

  • 스프링 시큐리티

Weekly goal

  • 책 읽기
  • 영어 레퍼런스 읽기
  • 회고

 

스프링 시큐리티 

 

메서드 방식의 인증 처리

4개의 어노테이션이 존재함

@PreAuthorize , @PostAuthorize

( PrePostAnnotationSecurityMetadataSource 가 담당 )

 

@Secured, @RolesAllowed

( ~~~ MetadataSource가 담당 )

위의 2개는 SpEL을 지원함

 

모두 @EnableGlovalMethodSecurity(prePostEnabled = true, securedEnable = true)

해야 사용 가능 , 기본은 false임

메서드 보안 관련 class인 GlobalMethodSecurityConfiguration에서 설정을 확인하고 있다.

 

위의 예제는 user권한과 주어진 Dto의 유저 네임이 현재 로그인한 유저 네임과 일치해야 실행된다.

 

어노테이션에 붙은 애들은 초기화되면서 ~~ MetadataSource들에 의해 파라미터 부분이 저장된다.

후에 리스트로 관리되어 AbstractSecurityIntercepter에서 인가 검사할 때 사용된다.

 

PrePostAnnotationSecurityMetadataSource

PrePostAnnotationSecurityMetadataSource에서 어노테이션 정보를 뽑는 모습