본문 바로가기

카테고리 없음

[Spring security] @Secured @PreAuthorize @PostAuthorize 어노테이션 활용

먼저 시큐리티 SpringEL 설정을 활성화한다. 


security-context.xml 설정 파일을 확인하면 된다.

<http use-expressions="true" ...

pre-post-annotations 설정을 활성화한다. component-scan 을 설정한 파일을 확인하거나 추가한다.

<security:global-method-security pre-post-annotations="enabled" />

컨트롤러 스캔과 서비스 스캔을 따로하는 경우가 있다. 이럴때는 두 설정파일에 모두 pre-post-annotations 설정을 활성화해야 한다.


-----------------

스프링 부트의 경우


@EnableAuthorizationServer @EnableResourceServer @EnableGlobalMethodSecurity(prePostEnabled = true)

를 추가해주어야함.


@Secured는 표현식 사용할 수 없고

@PreAuthroize는 표현식 사용 가능



예)

@Secured({"ROLE_USER","ROLE_ADMIN"}) => OR 조건, AND 조건 불가능


@PreAuthorize("hasRole('ROLE_USER') and hasRole('ROLE_ADMIN')") => and 조건, or 조건 모두 가능